Error messages
What common messages mean and what to do about them.
Connection and service
| You see | Meaning | What to do |
|---|---|---|
Can't reach the Syntic server — check your internet (…) · retrying in 4s · attempt 2/10 | The request could not get through. Syntic Code retries up to 10 times with a countdown; the reason in brackets says why (for example connection refused). | Check your connection, VPN or proxy. Nothing to do if it recovers. |
Could not reach the Syntic server after 10 attempts | Every retry failed. | Fix the connection and send your message again. See proxies. |
No reply from the Syntic server for 14s — still waiting | Connected, but the reply has not started yet. If it does not start within 90 seconds, the request is retried. | Usually just wait. Press Esc to stop. |
Rate limited — retrying in … | You hit a short-term rate limit. It retries on its own. | Wait. |
The service stayed busy (overloaded or rate-limiting) through several retries. Wait a minute and send again, or pick another model with /model. | The model stayed busy. | Wait a minute, or switch model. A fallbackModel setting switches automatically. |
The server returned HTTP 404 … and other HTTP errors | The platform refused the request. The details follow. | Check syntic --version is current; try again. |
Your session has expired. Run syntic login to reconnect billing. | Your sign-in is no longer valid. | syntic login. |
| Plan refusals (“Your account is a free one…”, “Your plan isn’t active…”) | Your plan does not cover Syntic Code right now. | See Plans & models. |
Unattended runs (-p, background sessions) give up after 10 minutes of retry waits in total (SYNTIC_RETRY_WAIT_LIMIT_SECS).
Permissions
| You see | Meaning | What to do |
|---|---|---|
Permission denied: requires interactive approval, which is unavailable in this non-interactive run (…) | A -p or background run hit something that needs your OK; nobody was there to answer. | Allow it up front with --allowed-tools or --permission-mode, or run interactively. |
Permission denied: Tool 'Bash' is denied by a saved decision (or by a rule) | A deny rule matched. Deny rules win in every mode. | Check /permissions → Deny for the rule and its file. |
Tool '…' blocked by --disallowedTools | The run was started with that tool blocked. | Remove it from --disallowed-tools. |
| Auto mode asks with a reason such as “it pushes to or changes a remote repository” | One of the built-in high-impact checks. | Approve if you meant it. These checks cannot be turned off. |
| ”Syntic’s command safety check flagged this as critical and it will not be run” | A catastrophic command (such as deleting system folders) was refused outright. | Nothing to do; this is intentional. |
File tools
| You see | Meaning |
|---|---|
Refusing to edit … / Refusing to overwrite … | The agent tried to change a file it had not read in this session. It reads the file and tries again. |
| A file changed since it was last read | You (or another program) edited the file after the agent read it, so its change was refused to protect yours. It re-reads and tries again. |
old_string found 2 times in … | An edit was ambiguous. The agent adds more surrounding text or uses replace-all. |
old_string not found in … | The text to replace is not in the file (often because the file changed). |
File not found: … | Wrong path. |
… appears to be a binary file and cannot be read as text | The file is binary (or in an encoding that is not UTF-8). |
| A write outside the working folders is refused | Add the folder with /add-dir if the agent should work there. |
Tools and commands
| You see | Meaning |
|---|---|
Command did not finish within 2000 ms. Raise the timeout value or run it with run_in_background … | A shell command hit its timeout. The agent can retry with a longer timeout or in the background. |
| Output ends with a note that the rest was saved to a file | The output was over 30,000 characters; the agent can read the full file. |
Tool '…' not found | The model asked for a tool that does not exist in this session (perhaps --tools left it out). |
Invalid input for tool '…' | The model sent malformed input; it usually corrects itself on the next step. |
Connection failed: … Check if the URL is correct. (web fetch) | The page could not be reached. |
Command line
| You see | Meaning |
|---|---|
Unknown --output-format 'xml'. Use one of: text, json, stream-json. | Typo in a flag value (exit code 2). |
--output-format stream-json requires --verbose | Add --verbose. |
Unknown --permission-mode '…' | Use default, acceptEdits, auto, plan, bypassPermissions or dontAsk. |
Invalid --session-id: '…' is not a valid UUID | Session ids must be UUIDs. |
Invalid --settings: invalid settings JSON … | The --settings value or file is not valid JSON. |
No previous session to continue in this project; starting a new session. | -c found nothing to continue here. |
Unknown command: /… Run syntic interactively and type /help to list commands. | An unknown slash command in a -p prompt. |
The /compact command is only available in an interactive session, not in --print mode. | Some commands need the interactive screen. |
An error for a word like syntic install or syntic plugins | That command does not exist; the message names the right one (syntic update, syntic plugin). |
MCP servers
| You see | Meaning and fix |
|---|---|
A server shows “not connected” in /mcp with a reason | The server failed to start or answer. syntic mcp list --check tests local servers; --mcp-debug logs details. |
| A server “needs sign-in” | Press Enter on it in /mcp, or run syntic mcp login <name>. |
'…' sends its own Authorization header from its config, so it does not use sign-in | The server is configured with a header, so mcp login is not needed. |
Allow it to start? [y/N] before the session opens | A project server needs your approval the first time. |
Could not parse --mcp-config JSON … | The value or file is not valid JSON; those servers are skipped. |
Still stuck? Run with --debug, reproduce the problem, and save a report with /feedback. See Troubleshooting.