Deploy form submits but never creates an app — no error shown, console shows RequiredError

Title: Deploy form submits but never creates an app — no error shown, console shows RequiredError

Body:

I’m trying to deploy an app from a private repo in a GitHub organization I own. Repository access, branch, and file path are all confirmed correct (verified independently against GitHub multiple times), and the form shows no validation errors, all fields green/valid, App URL shows “Domain is available”, Deploy button is enabled.

Clicking Deploy does nothing visible: no navigation, no error message, no app appears under “My apps” afterward. This happens consistently across multiple sessions, including a fresh incognito sign-in.

Using browser devtools, I found:

  1. When using the “Paste GitHub URL” input mode specifically, the console shows an uncaught error on submit:

    Warning: An unhandled error was caught from submitForm() RequiredError: Required parameter repo was null or undefined when calling verifyFileExists.
        at assertParamExists (schemas-*.js)
        at Object.verifyFileExists (schemas-*.js)
        at GithubApi.verifyFileExists (schemas-*.js)
        at deploy-*.js (onSubmit handler)
    
    

    This suggests the URL-paste mode isn’t correctly populating the internal repo field before validation fires on submit.

  2. Using the interactive picker (separate Repository/Branch/Main file path fields, selecting from the live autocomplete dropdowns) avoids that specific error, but submitting still results in the page becoming unresponsive for several seconds (repeated Page.captureScreenshot / renderer timeouts when automating), and no deploy/create-app network request is ever sent, confirmed by monitoring network requests through the submit, only a client-side analytics “submit” event fires, no corresponding API call to create the app.

Repo: private, under a GitHub organization I own (fine-grained PAT and OAuth private-repo access both confirmed granted and working for other purposes). Branch: main, confirmed via GitHub’s own UI. Also worth noting GitHub’s own repo page was intermittently showing “Cannot retrieve latest commit at this time” around the same period, might be unrelated, might be relevant if your deploy flow depends on the same commit-info endpoint.

Happy to provide more detail, HAR file, or a screen recording if useful.

Hey there, thanks for the super detailed report and welcome to the Streamlit community! :rocket: It sounds like you’ve done a thorough job debugging—nice work! From what you’ve described, it seems likely that the “Paste GitHub URL” mode isn’t correctly parsing or populating the repo field, which leads to the RequiredError in the console and prevents the deploy API call from being made. This is consistent with known issues where the deploy form fails silently if required fields aren’t set internally, even if the UI looks valid. Using the interactive picker avoids the JS error, but if no network request is sent, it suggests a deeper client-side or permissions issue, possibly related to GitHub org access or a transient backend hiccup. There’s no explicit mention of this exact bug in the official docs, but similar symptoms have been reported and resolved by re-linking GitHub, ensuring org access, and sometimes just waiting out backend issues.

My understanding is that the best next steps are: (1) double-check that Streamlit has been granted access to your GitHub organization and private repos (see Manage your GitHub connection), (2) try revoking and reauthorizing Streamlit’s GitHub OAuth permissions, and (3) use the interactive picker rather than the URL-paste mode, as the latter may not be fully supported for private/org repos. If the issue persists, deleting and redeploying the app, or even creating a new repo, has resolved similar cases for others. If you’re still stuck, sharing a minimum reproducible example or repo link (privately, if needed) can help the community jump in. For more, see Connect your GitHub account and troubleshooting forum threads. Community members, feel free to share your insights!

Sources: