← Back to issue list

remote-build: status indicator blocks interactive input

View original Github issue

Metadata

Project
craft-application
Number
#1101
Type
issue
State
open
Author
steinbro
Labels
—
Created
Updated
Closed
—

Current evaluation

remote-build's git push inherits stdin, so SSH prompts (unknown host key, missing key) block while the progress indicator owns the terminal; @mr-cal proposed running an SSH probe before upload to pause the emitter and give a friendly error.

Suggested action: keep open

Reason: The bug is confirmed in the current tree: GitRepo.push_url (craft_application/git/_git_repo.py:429-470) spawns `git push` via subprocess.Popen without stdin=DEVNULL and without pausing the craft-cli emitter, so ssh's 'Are you sure you want to continue connecting' prompt is interleaved with the progress spinner and never returns until Enter is pressed; the traceback in the report pins it to remotebuild.py _ensure_repository. No fix exists yet — git log for craft_application/services/remotebuild.py shows no ssh/probe-related commits (latest 90cc2c75) and grep for 'probe'/'GIT_SSH_COMMAND' returns nothing. The issue is a valid, triaged bug raised by a maintainer with a concrete repro and a maintainer-proposed approach in mr-cal's comment, so it should stay open; the only mild uncertainty is that the approach is still exploratory and the issue carries no labels or assignee after 100 days.

Evaluated by: mr-cal-bot

Impact: 45 Quick Win: 19 Complexity: 45 Confidence: 80 Actionability: 78

Issue body

### Bug Description When connecting to Launchpad from a new machine or when SSH keys are not properly configured, the git command invoked by remote-build for a private build may request interactive input that the user can't interact with. Worse, the progress indicator starts counting as if progress is being made, and doesn't stop until the user presses enter. ``` $ snapcraft remote-build --build-for amd64 --project my-private-project remote-build is experimental and is subject to change. Use with caution. The authenticity of host 'git.launchpad.net (185.125.188.189)' can't be established. RSA key fingerprint is SHA256:UNOzlP66WpDuEo34Wgs8mewypV0UzqHLsIFoqwe8dYo. This key is not known by any other names. Are you sure you want to continue connecting (yes/no/Starting new build. It may take a while t… | (50.3s) ``` ### To Reproduce 1. Remove git.launchpad.net from ~/.ssh/known_hosts, if present. 2. Run `snapcraft remote-build --project <some_private_project>` ### part yaml ```shell ``` ### Relevant log output ```shell 2026-06-24 14:31:02.477 Starting new build. It may take a while to upload large projects. 2026-06-24 14:31:04.079 Using ssh url for private repository: ParseResult(scheme='git+ssh', netloc='dsteinbrook@git.launchpad.net', path='/~dsteinbrook/[redacted]/+git/snapcraft-[redacted]-7175af0a5002d640bcf58df31dfcebf4', params='', query='', fragment='') 2026-06-24 14:31:04.080 Resolved reference 'refs/heads/work/CRAFT-5148/craft-sdk-snap' for name 'HEAD' 2026-06-24 14:31:04.080 Pushing 'HEAD' to remote 'git+ssh://dsteinbrook@git.launchpad.net/~dsteinbrook/[redacted]/+git/snapcraft-[redacted]-7175af0a5002d640bcf58df31dfcebf4' with refspec 'refs/heads/work/CRAFT-5148/craft-sdk-snap:refs/heads/main'. 2026-06-24 14:31:14.400 Git operation failed with: Could not push 'HEAD' to 'git+ssh://dsteinbrook@git.launchpad.net/~dsteinbrook/[redacted]/+git/snapcraft-[redacted]-7175af0a5002d640bcf58df31dfcebf4' with refspec 'refs/heads/work/CRAFT-5148/craft-sdk-snap:refs/heads/main' for the git repository in '/home/daniel.steinbrook@canonical.com/.cache/snapcraft/remote-build/snapcraft-[redacted]-7175af0a5002d640bcf58df31dfcebf4/repo'. 2026-06-24 14:31:14.401 Traceback (most recent call last): 2026-06-24 14:31:14.401 File "/snap/snapcraft/18124/lib/python3.12/site-packages/craft_application/services/remotebuild.py", line 295, in _ensure_repository 2026-06-24 14:31:14.401 local_repository.push_url(push_url.geturl(), "main", push_tags=True) 2026-06-24 14:31:14.401 File "/snap/snapcraft/18124/lib/python3.12/site-packages/craft_application/git/_git_repo.py", line 531, in push_url 2026-06-24 14:31:14.401 raise GitError( 2026-06-24 14:31:14.401 craft_application.git._errors.GitError: Git operation failed. 2026-06-24 14:31:14.401 For more information, check out: https://documentation.ubuntu.com/snapcraft/9.0.0/explanation/remote-build 2026-06-24 14:31:14.401 Full execution log: '/home/daniel.steinbrook@canonical.com/.local/state/snapcraft/log/snapcraft-20260624-143058.434420.log' ```

Evaluation history

Date Model Scores Action Summary
stealth/space-bunny-alpha
Impact: 45
Quick Win: 19
Complexity: 45
Confidence: 80
Actionability: 78
keep open remote-build's git push inherits stdin, so SSH prompts (unknown host key, missing key) block while the progress indicator owns the terminal; @mr-cal proposed running an SSH probe before upload to pause the emitter and give a friendly error.
stealth/space-bunny-alpha
Impact: 46
Quick Win: 17
Complexity: 55
Confidence: 93
Actionability: 84
keep open Private Launchpad remote builds can hang on SSH prompts because the progress indicator prevents input. A pre-upload SSH probe is under discussion to pause output and report missing keys clearly.
qwen3.6-35b-a3b-mtp-q6
Impact: 45
Quick Win: 29
Staleness: 65
Complexity: 35
Confidence: 75
Support Request: 15
needs triage remote-build blocks interactive SSH input with a progress indicator when connecting to Launchpad for private projects without configured SSH keys.
qwen/qwen3.6-35b-a3b
Staleness: 25
Complexity: 45
Confidence: 85
Support Request: 10
keep open remote-build progress indicator blocks SSH host key verification prompts, preventing interactive input. A maintainer has proposed probing the connection first to pause the emitter and validate SSH keys.
qwen3.6-35b-a3b-mtp-q6
Staleness: 15
Complexity: 45
Confidence: 85
Support Request: 10
needs triage remote-build progress indicator interferes with SSH host key prompts, blocking interactive input. Currently under discussion with a proposed fix to probe SSH connectivity before upload.

Update history

No update history recorded yet.

Related issues

No related issues found above the similarity threshold.