TuringDNA

Help

Troubleshooting

Error code to cause to fix, for every error the engine returns. Plus the things that look broken and are not: a building genome index, an empty commons, a run that vanished after a deploy.

Updated 31 July 2026

All documentation
On this page

Every error carries a kind alongside its HTTP status, so the cause is identifiable without reading the message. The tables below map both to what to actually do.

Sign-in and access

Status kind What happened Fix
403 signin_required CRISPR, primer analysis, the plasmid editor and every save endpoint need an account. There is no trial on these. Create a free account. The response carries a signup_url tagged with where you came from.
402 auth_required Your 5-minute anonymous trial expired. Applies to directed evolution and the agent. Sign in. 402 rather than 401 because you are welcome to use it — you just need an account.
403 forbidden The job or agent run belongs to a different account. Re-run it under your own account.
403 consent_required You asked for an NCBI specificity scan without consenting to send the sequence. Tick the consent box. This step transmits your primer sequences to NCBI, so it is off by default.

Chatting is free, running is not

Talking to Turing costs nothing and needs no account. The moment it calls a tool, the tool’s own access rule applies.

Input rejected

Status kind What happened Fix
400 validation A setting is out of range or a field is empty. The message names the field and the accepted range.
400 needs_cds_choice You uploaded a plasmid or multi-CDS record. The engine refuses to guess which coding sequence you meant. Pick one from the cds_options list it returns.
400 input_too_large CRISPR sequence over 1 Mbp. Paste the gene or region, not the chromosome.
413 Local-specificity genome file over 12 MB. Use a bacterial or small eukaryotic genome.
422 bad_organism, bad_symbol The organism or gene symbol is not one the resolver recognises. Check spelling, or paste the sequence directly.

Sequence validation is more specific than a generic “invalid input”. Each of these names the offending nucleotide position:

Message Cause
invalid_char A character outside the accepted alphabet
bad_length Not a multiple of 3, so it cannot be translated as a CDS
no_start / no_stop Missing the expected start or stop codon
premature_stop A stop codon inside the reading frame
Ambiguous IUPAC codes ESM-2 scoring needs a fully determined wild type — N, R, Y and friends have to be resolved first

"Sequence is only N nt after cleaning"

Almost always protein pasted into a DNA field. The CRISPR input strips everything outside ACGTN, so an amino-acid sequence survives only as its stray A, C, G, T and N letters — usually a handful of characters.

Timing and state

Status kind What happened Fix
409 You asked for a result before the job finished. Poll status until it reads done.
410 Upload session or agent run expired. Both live 6 hours. Re-upload, or start a new conversation.
410 run_expired The run was in memory when the engine restarted. Expected after a deploy. The chat starts a fresh run automatically.
429 rate_limited Endpoint rate limit hit. Wait the number of seconds in the Retry-After header. See rate limits.
503 lookup_failed Ensembl, UniProt or NCBI was transiently unavailable. Retry. This is explicitly not “gene not found” — the lookup itself failed.

Looks broken, is not

The genome column is empty and there is a “check again” banner. The index for that organism is building. First use costs roughly one second per megabase — seconds for E. coli, around three minutes for human. Guides are still correct; they simply have no genome data yet. Re-run once it finishes.

A number changed between two runs of the same sequence. Genome off-target data appears once the index exists, which changes the composite score. On-target scores themselves are deterministic.

Only ten guides have genome off-target data. By design — the top ten ranked guides are screened, because each genome query costs a few seconds. Everything else shows input-CFD only.

The Field Atlas shows a small number and zero from platform labs. That is the honest cold start: the commons holds substitutions from published DMS studies and none yet contributed by platform users. The two counts are tracked separately and must never be added together.

A running job vanished. The engine runs one worker with in-memory job state, so a deploy ends anything in flight. Saved designs live in the database and are unaffected.

Turing says a capability is not configured. The agent needs an OpenRouter key. Where it is absent the agent says so instead of inventing an answer, and every tool still works through its own view.

A base edit installed more changes than expected. Bystanders. Every base of the same type inside the activity window is a candidate, not only the one you targeted. The engine flags them; see the activity window.

Still stuck

Email info@turingdna.com, or use the contact page. Including the kind from the error and what you pasted makes it much faster to answer.