Skip to Content
SPAPS is proprietary hosted SaaS. Paid access required; pre-1.0 contracts may change. Terms and access
Maintainer OperationsTroubleshooting

Troubleshooting

Most SPAPS failures are easiest to debug by layer. Start with startup settings, then application identity, then user identity, then domain service behavior. Avoid jumping straight into a domain service until the request has made it through dependencies.

Symptom Decision Tree

SymptomFirst commandExpected signalLikely causeNext page
Local runtime will not startnpx spaps statusAPI URL and availability are reportedLocal runtime source, port, or Docker state is unavailableLocal runtime
Python stack will not startmake local-proof-up && curl -fsS http://localhost:3301/health/health respondsStartup validation, missing services, or port conflictDeployment validation
API key rejectedcurl -fsS http://localhost:3301/health/local-modeLocal-mode state is explicitMissing X-API-Key, wrong key type, or local-mode assumptionAuth and local mode
CORS or origin failureInspect applications.allowed_origins for the app slugExact browser origin is presentOrigin was changed in frontend config but not the app recordAPI keys and origins
Auth mode mismatchnpx spaps quickstart --jsonOutput names local-mode or provisioning hintsCLI/runtime and docs disagree about local vs provisioned authAuth and local mode
Webhook delivery blockedCheck WEBHOOK_ALLOWED_DOMAINS and webhook signing configDestination domain and secret policy are presentProduction destination policy or signing secret is missingWebhooks and event delivery
Entitlement missingnpx spaps verify --jsonRuntime/auth checks name the failing controlPayment state did not project to feature accessBilling and entitlements
Ready check reports PII failurecurl -fsS http://localhost:3301/health/readyPII readiness check names the missing invariantSPAPS_PII_MASTER_KEY is absent for PII-enabled appsSecurity invariants
Pagefind or docs build failurenpm run buildNext build and Pagefind postbuild completeBroken MDX, search output, or static build issueRelease governance
make pytest reports no affected testsmake pytestTestmon reports affected or no affected testsNo impacted tests were selectedTesting and TDD

Debug Commands

curl -fsS http://localhost:3301/health | jq curl -fsS http://localhost:3301/health/ready | jq curl -fsS http://localhost:3301/health/local-mode | jq make pytest make lint make typecheck

Common Mistakes

Do not fix a dependency-layer failure by weakening a domain service. The service may never be reached.

  • Debugging an auth route with the wrong application key.
  • Forgetting that local mode can still validate explicit real API keys.
  • Updating frontend environment variables when the problem is an application database row.

See Also