Troubleshooting
Fix a problem
Error messages, what they mean, and what to do — authentication, credits, sessions, uploads, and the UE connector.
Find the message you're seeing. When your AI client relays an error, quote it back to the client — it can usually act on the remedy itself.
| Symptom | Cause | Fix |
|---|
Authorization: Bearer <jwt> is required on /api/mcp/* routes | Client connected without signing in | Start the connection again; complete the browser sign-in |
JWT rejected by JWKS / invalid token | Token expired or invalid | Clients refresh automatically; if not, sign in again |
| Symptom | Cause | Fix |
|---|
No user account exists for this identity — sign in to the portal first | Valid sign-in, but you never opened the portal | Sign in once at spaghetti.gg, then retry |
User is not a member of team {id} | Team context points at a team you're not in | Fix the team id in your Project Settings context/headers, or get added to the team |
Team {id} not found / Project {id} not found in team {id} | Wrong ids in context | Correct the ids — see Teams and projects |
Tool {code} is currently disabled | The tool is switched off platform-side | Retry later or reach out via the community |
| Symptom | Cause | Fix |
|---|
Insufficient credits: need N, have M. Call the topup tool… | Balance too low | Ask your client to Top up $N, pay, then retry — see Top up credits |
Insufficient credits: wallet X, held by in-flight calls Y, need N | Enough balance, but reserved by running calls | Wait for in-flight runs to finish (holds expire after 15 minutes), or top up |
Charged 0 credits for a run | The run wasn't billable (empty log, no Error/Fatal entries, unusable inventory) | Expected behavior — free outcomes are free |
| Symptom | Cause | Fix |
|---|
Session {id} has expired — restart the analysis with logPath | Phase B called on a session older than 24 hours | Start a fresh Phase A (the asset-audit variant words it "restart with a fresh call") |
Session {id} not found / Session belongs to another billing entity | Wrong session id, or a session created by another account/team | Start a fresh Phase A with the same account/context |
logUri belongs to session 'X' but the call continues session 'Y' | Upload link and session id don't match | Re-run Phase A and use the fresh pair |
| Upload fails with 403 | Presigned link expired (15 minutes) or machine clock skew | Fresh Phase A; check your system clock |
| Binary/minidump upload rejected | The file isn't a plain-text log | Analyze the text log written next to the dump |
Pass logUri or logText, not both / logUri requires the sessionId from Phase A | Conflicting or incomplete inputs | Send logUri + sessionId, or just logText |
| Symptom | Cause | Fix |
|---|
make_tool ends as cancelled — client does not support elicitation | Your client can't show approval forms | Use an elicitation-capable client (Claude Code); cancelled runs are free |
search_logs_temporal requires a project… (same for query_temporal_relations and investigate_incident) | Project-scoped tool called without project context | Set project context — see Teams and projects |
Connector lines appear prefixed [SpaghettiConnector]. All failures are non-fatal — the editor starts regardless.
| Symptom | Cause | Fix |
|---|
onboarding check failed | The Project Settings context check couldn't run | Ignore unless you rely on the hint; the connector still works |
MCP toolsets not registered (Toolset Registry plugin unavailable?) | Engine Toolsets plugin missing/disabled | Re-enable the connector and its engine dependencies |
MCP autostart bootstrap failed | Couldn't turn on Auto Start Server once | Enable Editor Preferences → Model Context Protocol → Auto Start Server by hand |
could not persist MCP Auto Start Server setting… | Config directory is read-only (e.g. Perforce) | The server is started for this session only; the connector retries next launch |
- FAQ
- Still stuck? Ask in the community or use the feedback controls at the bottom of any page.
Was this page helpful?