HTTP 403 Error on v14 install

I’m trying to install the v14 pipelines on a Jupyterhub server here in Edinburgh, but I’m getting an HTTP 403 error on the following URL:

I’m following the install instructions here:

I also tried the install using conda (which is more ideal for my setup as I’d like the pipelines to end up in the same Python environment as the rest of the Jupyter/Jupyterhub setup), but the instructions are gone: and it also results in the same 403 error as the method. Is conda still supported as an installation method? And if so, when will it be available for v14?

May I ask where that URL came from? It is not present in our 14.0 documentation and is not used by newinstall.

Conda packaging of LSST DM software was dropped after the 13.0 release as it wasn’t part of the developer workflow. This meant that changes in EUPS dependencies and new products would often result in the conda package build breaking. The conda package build was also attempting to replace EUPS packaged software with the official conda equivalent. This was also causing breakage as occasionally the official conda package was built (or rebuilt by upstream) differently than the EUPS equivalent or in some cases, was outright broken. At the time, the official conda packages were produced on centos 5 and some of our software needed patching to build on this platform, as it isn’t officially supported and not CI’d. The result was it took over a month of labor to produce the 13.0 conda package build. The conclusion was that conda packaging wasn’t sustainable unless it became the primary developer build mechanism. Our architecture team decided not to make that change.

We are producing EUPS tarball binary builds on a weekly (and unofficially, daily) basis. We also publish docker images from the EUPS tarballs into the registry weekly (and daily):

The 14.0 release image is


docker run -ti

These images are the base for our own jupyterlab images.

You may find of interest. If you want to install the LSST Stack on a JupyterHub Kubernetes environment, it’ll be quite helpful.

1 Like

I’m not sure where that URL is coming from. I assumed it’s in the script, but it doesn’t appear to be there. Here’s my exact terminal output as I follow the instructions:

root@lsstuk3:/opt/lsst_2# curl -OL
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 28093 100 28093 0 0 189k 0 --:–:-- --:–:-- --:–:-- 190k
root@lsstuk3:/opt/lsst_2# bash -ct

LSST Software Stack Builder

curl: (23) Failed writing body (757 != 2759)
!!! This script differs from the official version on the distribution
server. If this is not intentional, get the current version from here:
Detected git version 2.11.0. OK.

In addition to Python 2 (>=2.7) or 3 (>=3.5), some LSST
packages depend on recent versions of numpy, matplotlib, and scipy. If you
do not have all of these, the installation may fail. Using the Miniconda
Python distribution will ensure all these are set up.

Would you like us to install the Miniconda Python distribution (if
unsure, say yes)?yes
######################################################################## 100.0%
Fetching package metadata …

CondaHTTPError: HTTP 403 Forbidden
for url

The channel you requested is not available on the remote server.

You will need to adjust your conda configuration to proceed.
Use conda config --show to view your configuration’s current state.
Further configuration help can be found at

I’ve seen the Kubernetes/Jupyterlab demo stuff, thanks. It doesn’t apply to my case though as we’re not running Kubernetes or Open Stack. I’m just trying to get a working Jupyterhub installation on a bare metal machine that has the lsst stack loaded into the notebooks by default.

Can you please run the suggested conda config --show? I suspect that you have an outdated conda channel in your configuration that is being searched while installing normal conda packages. Removing that may fix things.

root@lsstuk3:~# conda config --show
add_anaconda_token: True
add_pip_as_python_dependency: True
allow_non_channel_urls: True
allow_softlinks: False
always_copy: False
always_softlink: False
always_yes: False
anaconda_upload: None
auto_update_conda: True
changeps1: True
channel_priority: True

  • http//
  • defaults
    client_ssl_cert: None
    client_ssl_cert_key: None
    clobber: False
    create_default_packages: []
    pkgs/main: https//
    pkgs/free: https//
    pkgs/r: https//
    pkgs/pro: https//
    defaults: [“https//”, “https//”, “https//”, “https//”]
    local: []
  • https//
  • https//
  • https//
  • https//
    disallow: []
  • /opt/lsst_stack/python/miniconda3-4.3.21/envs
  • /root/.conda/envs
    force: False
    json: False
    local_repodata_ttl: 1
    migrated_channel_aliases: []
    non_admin_enabled: True
    offline: False
    path_conflict: clobber
    pinned_packages: []
  • /opt/lsst_stack/python/miniconda3-4.3.21/pkgs
  • /root/.conda/pkgs
    proxy_servers: {}
    quiet: False
    remote_connect_timeout_secs: 9.15
    remote_max_retries: 3
    remote_read_timeout_secs: 60.0
    rollback_enabled: True
    shortcuts: True
    show_channel_urls: None
    ssl_verify: True
    track_features: []
    use_pip: True
    verbosity: 0

(I had to remove the ‘:’ from some of the URLs to post that as the content was getting blocked. But all the URLs are complete in the original output)

I think if you used code mode for the post it would have been fine. That’s three backticks at the start and at the end.

You do not want that channel to be active.