Troubleshooting
Start with the repository's locked toolchain and the hst diagnostic commands.
Avoid installing a second global copy of Hosanna Tools.
Verify the Environment
node --version
npx hst version
npx hst env check
npx hst compiler:status
Current hosanna-ui-samples-public expects Node.js 24.17.0. In another application,
use its .nvmrc and package.json engines instead of copying that version
blindly.
Generated Imports Cannot Be Resolved
Generated factories and state contracts live below src-generated and are
normally ignored by Git. Generate them before direct TypeScript or Vitest
commands:
npm run generate
The sample repository's normal npm test, npm run build, and hst run
workflows generate them automatically.
Dev Port Is Occupied
The active Vite port comes from .hosanna-tools/run.json or --vitePort. The
sample repository uses 5170; HST's built-in default is 5173.
First, inspect the owning process:
lsof -nP -iTCP:5170 -sTCP:LISTEN
Stop the relevant dev session normally. For a separate run, choose a complete non-conflicting port configuration rather than force-killing an unknown process:
npx hst run web dev browser --vitePort 5180
Browser Opens the Wrong or Stale Screen
- Run from the application repository root.
- Inspect
.hosanna-tools/run.jsonfor the selected app, port, and default profile. - Use
--dry-run --explainto see how HST resolved the launch. - Check launch query parameters such as
defaultSpringboardRigandnoAutoOpenLastScreen.
npx hst run web dev browser --dry-run --explain
Hosanna is not a React package. Do not add react, an imaginary public
hosanna-ui package, or arbitrary @types packages to solve generated-source
or SDK-install errors.
A Native App Shows an Old Runtime
Confirm the exact target, then rebuild/install through HST:
npx hst target:list --platform android --target sim --json
npx hst run android dev sim --device emulator-5554 --replace
If logs refer to an unexpected runtime or the wrong package, suspect a stale install or wrong selected simulator/device before changing framework bootstrap code. Force-stop or uninstall only the exact package on the exact selected target, then rerun the supported launcher.
Focus or Input Does Nothing
- Give the intended starting control
.isInitialFocus(). - Verify every explicit
nextFocusMapID exists in the current view tree. - Click the dark browser background before using remote-style keyboard input; browser-native inputs intentionally keep their own key events.
- On Apple TV Simulator, confirm the Hosanna app is frontmost and keyboard capture is enabled.
- On device, inspect the focus hierarchy and input path with Hosanna diagnostics instead of inferring focus from pixels alone.
Licensed SDK or Compiler Cannot Install
- Confirm
HSC_LICENSE_KEYis available without printing it. - Run
npx hst license:status. - Check the exact SDK/compiler versions in
hosanna.json. - Do not replace or discard an existing modified
hosanna-ui/install without preserving the work and explicitly choosing a source mode.
See Compiler License and Tool Setup and Upgrading.