Push Troubleshooting
Push Troubleshooting
Resolve missing remotes, authentication failures, rejected pushes, backup skips, and tag synchronization problems.
custy pushCategory
Quick Command
custy push [OPTIONS]Overview
Read the first Git or remote response and identify the exact destination before retrying. A partially completed multi-remote push needs destination-by- destination verification.
No Valid Main Remote Was Found
git remote -vAdd or correct the intended remote using normal Git configuration, then run Custy dry-run again.
Authentication Failed
Run custy configure credentials status, then test the remote with Git or
custy configure credentials test --remote origin. Repair SSH keys,
credential-manager state, mounted external files, token environment variables,
PAT scopes, or provider access without placing token values in Custy
configuration or documentation.
For Docker, remember that the host credential-manager session is not inherited. Use native SSH, an approved interactive prompt, or the optional protected external fallback described in the credential guide.
Git Appears to Freeze After Starting a Push
When no managed or native credential succeeds and interactive_fallback = true,
Git waits for terminal input. Current Custy versions disable Rich rendering for
hidden direct-command pipelines, suspend visible Run progress, release captured
streams, and explain that an HTTPS Password prompt expects a PAT. If
custy run push works but custy push still loses its prompt, rebuild or pull
the image containing the hidden-progress fix. Pressing Enter twice submits empty
credentials.
A Non-Interactive Push Stops Instead of Prompting
This prevents an unattended job from hanging. Keep
fail_non_interactive = true and supply the configured file or environment
source to the process. Dry-run does not read a token or contact the remote.
The Push Was Rejected
Read the remote response. Common causes include protected branches, non-fast- forward history, required reviews, and missing permissions. Do not force-push unless repository policy explicitly permits it.
Backup Synchronization Was Skipped
Check the current branch prefix and whether sync_backup is enabled. Custy can
skip backup remotes for non-critical branches.
A Tag Was Not Pushed
Confirm the tag exists locally, was passed with --tag, and was not disabled
by --skip-tag or commit-type eligibility rules.
A Configured Group Was Not Selected
Check precedence. An explicit --remote selects one destination,
all_remote = true selects all configured groups, and otherwise
tool.custy.git.push_to selects main, backup, or all. Backup targets can
still be skipped on non-critical branches.