posit-dev / posit-dev/rsconnect-python

ValueError: The "" URL scheme is not supported.

Open
#699 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
37
Forks
28
Avg merge
1d 3h
Merged PRs (30d)
7

Description

I get penguins.qmd from https://quarto.org/docs/dashboards/interactivity/shiny-python/index.html

I create a venv with the requirements:

uv venv -p 3.13.5
uv pip install shiny shinywidgets jupyter seaborn
source .venv/bin/activate

I can now see the app I expect in Firefox after using quarto preview penguins.qmd in bash.

I'd like to deploy it to Connect from the CLI. Because it has interactive content, I need to use rsconnect deploy rather than quarto deploy.

~/src/quarto-python-shiny via 🐍 v3.13.5 (quarto-python-shiny) via ⨁ v1.7.32 
[ 15:55:19 ] ❯ rsconnect deploy quarto penguins.qmd 
Inspecting Quarto project...                     [OK]
Inspecting Python environment...                     Warning: Python version constraint missing from pyproject.toml, setup.cfg or .python-version
             Connect will guess the version to use based on local environment.
             Consider specifying a Python version constraint.
[OK]
Traceback (most recent call last):
  File "/home/lsimpson/src/quarto-python-shiny/.venv/lib/python3.13/site-packages/rsconnect/main.py", line 118, in wrapper
    result = func(*args, **kwargs)
  File "/home/lsimpson/src/quarto-python-shiny/.venv/lib/python3.13/site-packages/click/decorators.py", line 34, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/home/lsimpson/src/quarto-python-shiny/.venv/lib/python3.13/site-packages/rsconnect/main.py", line 1315, in deploy_quarto
    ce = RSConnectExecutor(
        ctx=ctx,
    ...<12 lines>...
        env_vars=env_vars,
    )
  File "/home/lsimpson/src/quarto-python-shiny/.venv/lib/python3.13/site-packages/rsconnect/api.py", line 771, in __init__
    self.setup_client(cookies)
    ~~~~~~~~~~~~~~~~~^^^^^^^^^
  File "/home/lsimpson/src/quarto-python-shiny/.venv/lib/python3.13/site-packages/rsconnect/api.py", line 927, in setup_client
    self.client = RSConnectClient(self.remote_server, cookies)
                  ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/lsimpson/src/quarto-python-shiny/.venv/lib/python3.13/site-packages/rsconnect/api.py", line 382, in __init__
    super().__init__(
    ~~~~~~~~~~~~~~~~^
        append_to_path(server.url, "__api__"),
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...<2 lines>...
        cookies,
        ^^^^^^^^
    )
    ^
  File "/home/lsimpson/src/quarto-python-shiny/.venv/lib/python3.13/site-packages/rsconnect/http_support.py", line 238, in __init__
    raise ValueError('The "%s" URL scheme is not supported.' % self._url.scheme)
ValueError: The "" URL scheme is not supported.
Internal error: The "" URL scheme is not supported.

From the log output, it isn't clear if I have done something wrong, or if this is an issue with rsconnect.

Note that I get the same error when I run sconnect deploy shiny . --entrypoint app.py

~/src/quarto-python-shiny via 🐍 v3.13.5 (quarto-python-shiny) via ⨁ v1.7.32 
[ 16:14:50 ] ❯ rsconnect deploy shiny . --entrypoint app.py
    Warning: Python version constraint missing from pyproject.toml, setup.cfg or .python-version
             Connect will guess the version to use based on local environment.
             Consider specifying a Python version constraint.
Traceback (most recent call last):
  File "/home/lsimpson/src/quarto-python-shiny/.venv/lib/python3.13/site-packages/rsconnect/main.py", line 118, in wrapper
    result = func(*args, **kwargs)
  File "/home/lsimpson/src/quarto-python-shiny/.venv/lib/python3.13/site-packages/click/decorators.py", line 34, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/home/lsimpson/src/quarto-python-shiny/.venv/lib/python3.13/site-packages/rsconnect/main.py", line 1674, in deploy_app
    ce = RSConnectExecutor(
        ctx=ctx,
    ...<16 lines>...
        env_vars=env_vars,
    )
  File "/home/lsimpson/src/quarto-python-shiny/.venv/lib/python3.13/site-packages/rsconnect/api.py", line 771, in __init__
    self.setup_client(cookies)
    ~~~~~~~~~~~~~~~~~^^^^^^^^^
  File "/home/lsimpson/src/quarto-python-shiny/.venv/lib/python3.13/site-packages/rsconnect/api.py", line 927, in setup_client
    self.client = RSConnectClient(self.remote_server, cookies)
                  ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/lsimpson/src/quarto-python-shiny/.venv/lib/python3.13/site-packages/rsconnect/api.py", line 382, in __init__
    super().__init__(
    ~~~~~~~~~~~~~~~~^
        append_to_path(server.url, "__api__"),
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...<2 lines>...
        cookies,
        ^^^^^^^^
    )
    ^
  File "/home/lsimpson/src/quarto-python-shiny/.venv/lib/python3.13/site-packages/rsconnect/http_support.py", line 238, in __init__
    raise ValueError('The "%s" URL scheme is not supported.' % self._url.scheme)
ValueError: The "" URL scheme is not supported.
Internal error: The "" URL scheme is not supported.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the failure with the rsconnect deploy quarto and rsconnect deploy shiny commands shown. Start in rsconnect/api.py at RSConnectExecutor.setup_client and RSConnectClient, then inspect rsconnect/http_support.py where the URL scheme is rejected. Done should include a verified fix or clearer diagnostic for the empty server URL.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
cli
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.