Exit Codes
Understand why commands return non-zero status, how to check $?, and how exit codes help debug scripts.
What this page is for
Exit Codes is for a command fails silently or returns a number instead of a clear message. Use this page when the problem is specific and repeatable, not when you only have a vague feeling that Termux is broken for Exit Codes.
Work on Exit Codes only after you can point to the exact clue in the terminal or browser output. For this guide, the main clues are exit, codes, common, understand, and the page description is: Understand why commands return non-zero status, how to check $?, and how exit codes help debug scripts.
Signs you are on the right page
- The same problem returns after a normal retry and it matches this topic: a command fails silently or returns a number instead of a clear message.
- The output mentions exit, codes, common, understand, or the failure happens immediately after a command connected to Exit Codes.
- You can reproduce the Exit Codes problem with one short test command instead of launching the whole project again.
- Check $? immediately after the command that failed.
Why it happens in Termux
Exit Codes belongs to the Termux package setup layer. In Termux, that layer can change because Android paths, package state, working folders, cached browser files, or Git settings are not shared the way they are on a desktop Linux system for Exit Codes.
- For Exit Codes, look for exit, codes, common, understand in the first useful output line. That line decides whether you should fix a path, dependency, permission, port, or repository setting for Exit Codes.
- The package index is old or the selected mirror is temporarily broken.
- The command name is different from the package name.
- An interrupted install left apt or dpkg in a half-finished state.
Copyable command
Run this from the folder that belongs to Exit Codes. Replace placeholder names before pressing Enter.
python script.py
echo $?
command_that_might_fail || echo "command failed"How to read the output
- python script.py — Runs the Python check or script; keep the full traceback if it fails.
- echo $? — Runs a focused check for Exit Codes; compare its output with the symptom before changing anything else.
- command_that_might_fail || echo "command failed" — Runs a focused check for Exit Codes; compare its output with the symptom before changing anything else.
Fix it in this order
- Copy the exact Exit Codes message before changing anything. Keep the command, folder, and first useful error line together.
- Run only the diagnostic part of the command block. If it fails early, do not continue to the later lines yet.
- Fix the layer named by the first useful output line: path, permission, package, Python environment, Git state, or browser URL for Exit Codes.
- Retest with the shortest command that originally failed. Do not restart the whole project until the small test works.
- When it works, write down the final command in your notes or README so the same Exit Codes problem is easier next time.
Common mistakes
- Jumping from Exit Codes to a full reinstall even though one smaller check can identify the failing layer.
- Running the same failed install ten times without changing the mirror or package name for Exit Codes.
- Copying desktop Linux commands that assume sudo, systemd, or /usr paths for Exit Codes.
- Killing package commands while they are writing files.
Before you leave the page
- The original Exit Codes output should be gone, shorter, or replaced by a different and more specific error.
- You should know which folder you were in and which command changed the result for Exit Codes.
- You should have a backup before deleting files, overwriting repositories, or changing working scripts for Exit Codes.
Guide did not solve it?
If package repair loops continue, use the Store and send pkg update output, the package name, and the exact command that failed for Exit Codes. Mention that the page you tried was: Exit Codes.
Open Store / Get Help