Account
FAQ & troubleshooting
Quick answers to the questions and snags that come up most often — sign-in, editor warnings, tests, runs, and sharing.
Signing in
“Account temporarily locked” / “Too many login attempts” — what now?
Sign-in is deliberately throttled: a handful of failed password attempts in a short window locks the account briefly, and many attempts from one network address are slowed as well. The lock expires on its own — the message includes how long to wait, and the wait grows if you keep hammering. The right move is: stop, wait it out, and if you're not sure of the password, use Forgot password? instead of guessing. (Password-reset requests are also rate-limited, so request one, not five.)
Why was my new password rejected?
Two rules: it must be long enough (the form shows the requirement — at least 15 characters), and it must not appear in known data-breach lists — if you see “That password has appeared in a known data breach. Choose a different one”, that exact string of characters is circulating in cracked-password lists, even if it looks strong. A password manager, or a long multi-word passphrase, satisfies both rules effortlessly.
I never got the verification / reset email.
Check spam first. Then re-request — but note the rate limits above. If it still doesn't arrive, contact whoever administers your VeriRun Lab instance; they can confirm the address on the account.
My two-factor codes are being refused.
Codes are time-based and single-use: check your device clock, wait for the next code, and type it fresh. Repeated failures are throttled just like passwords — after several misses, give it fifteen minutes.
The editor
The editor flags my import as “not importable in the sandbox”.
Your code runs in a locked-down container with no network access, and which
imports it may use depends on the file: strategy.py and notebook cells
are held to an approved list; tests and helper modules are not, so ordinary test
code is fine there. A few names are still refused there, and most of them are
standard library rather than third-party: the network ones — http,
ftplib, smtplib, socketserver — where there
would be nothing on the other end anyway, and shelve, because unsafe
deserialization is denied. requests is refused too
(what's available and why).
The editor warns you at typing time as a courtesy, so you don't spend a run finding
out. Fix is almost always one of: use the platform SDK's way of doing the same thing
(data access, file handling), use an approved library (numpy,
pandas and scikit-learn cover most numeric and modeling needs), or drop
the dependency.
Completions and diagnostics stopped appearing.
Language intelligence runs in your browser and degrades gracefully — the editor keeps working without it. A page reload usually brings it back. Very large files fall back to plain editing.
Did I just lose work?
Almost certainly not. Check the autosave chip: if it reads Saving failed — retrying, your edits are kept locally and re-sent automatically. And the snapshot timeline (right rail) can restore the workspace to any earlier point — restores are recorded, never destructive, so you can roll forward again too.
Tests and runs
Tests pass but the panel says “taxonomy INCOMPLETE”.
Green means all twelve required cases exist and pass — not just that nothing failed. If you removed or renamed a required case, the suite can be all-passing and still incomplete. Restore the missing case (the taxonomy table lists all twelve).
Preview/Backtest is disabled and I don't know why.
Hover the button — the tooltip always names the reason: no version cut yet, tests gate closed (with the failing count), or, for backtests, the version not yet approved. Work the reasons in that order: cut a version, get tests green, then approve.
My run failed.
Open the run's page: the status card shows the error type and detail. Common cases: a timed out run exceeded its time budget (shrink the window or the work); a missing data failure offers Request this range when the error recorded the exact uncovered range — otherwise it links the request form so you can describe what you need; a refused import or resource limit names itself. Retry run appears only where it would work: on a spec-path run (its window comes from the spec) unless the failure was classified as the spec version's own — a spec version is immutable, so the fix is a new version of the strategy — or as a data refusal that is not a missing range (a contract handover inside the window: save a new version with a window on one side of the session the message names; a window too short to leave a development session once the holdout is reserved: the catalog holds the data — widen the window in the spec's data block and save a new version, no request needed; a platform integrity check: read the error detail and, if it is not something you changed, tell us on the feedback board with the run id), and on a code-path run that stopped on a platform fault (it relaunches the same cut version with the same recorded window and settings). A code-path test run needs no window and is retried unless its own tests are the verdict. A code-path run that stopped on its own code or data does not get a Retry — it would run the same cut version over the same data and end the same way — the card says so and names the step that works: fix the cause and cut a new version, request the missing data, or launch again with a different window or parameters (on the run page, Re-run with changes… prefills that launch for a preview or backtest). A run of either kind that stopped on a platform integrity check gets one sentence: the same version would meet the same check — read the error detail and, if it is not something you changed, tell us on the feedback board with the run id.
Preview and backtest results disagree — which is wrong?
Neither. Previews use idealized fills (touch = fill); backtests require trade-through, post-only maker behavior and fees, and fill stop entries with conservative slippage. A gap between them is the fill-realism gap — often the single most informative number about your strategy's real-world viability.
A run was refused for insufficient credits.
The message shows the estimate, your balance and the shortfall. Tests and previews are always free, so your edit-test-preview loop is never blocked; for the metered run, ask your admin for a top-up grant. See Data & credits.
Do I get told when a run finishes?
Yes — the bell in the top bar collects everything: finished runs, ready reports, deep-audit results and similar events raise its unread count, and opening it shows the recent feed — click a notification to jump straight to the thing it's about (it's marked read on the way), dismiss what you don't care about, or mark everything read at once. A finished run also shows a brief toast, the sidebar's Runs entry carries the same unread count, and AI drafts get their own badge on the Drafts inbox — it counts the drafts you haven't opened yet, the inbox tags those rows "New", and the count moves the moment you accept, reject, revise or approve one, wherever you did it. Some decisions also produce a new draft — accepting a proposal cuts a new AI code version to approve, revising one produces a fresh proposal — so the count can hold steady or go up right after you decide. That's on purpose: you haven't read the new thing yet. Those rows tell you where they came from ("Created by your accept of …") and link back to the decision. Email is reserved for account matters (verification, password resets).
Sharing and exporting
How do share links work?
From a run's Share & report dialog you can mint a read-only link (expiring in 7–90 days; 14 by default). Anyone on your platform with the link can view a sanitized copy of the results — signing in is still required, every access is logged, and you can revoke any link at any time. The full URL is shown exactly once when minted, so copy it then. Public no-login sharing is currently disabled.
How do I get my results out?
Per run: CSV (stats), CSV (trades), JSON, XLSX, or a self-contained HTML report bundle. The journal exports as JSON and can back up to your own cloud storage. Your data is yours.
Product questions
Everything I test gets a NO-GO. Is the platform broken?
It's working. Most raw ideas do not survive conservative fills, realistic costs and pre-committed statistical gates — that is precisely why tools with friendlier assumptions feel so encouraging. Read the reasons list on each NO-GO: it tells you whether the problem is sample size, fill realism, costs or risk, and each of those suggests a different next experiment. A string of honest NO-GOs that steers you away from undeployable ideas is the product doing its job.
What are the achievements and XP about?
The Achievements section tracks process discipline, not profits: journaling streaks, plans made before trades, reviews completed. The XP and badges reward showing up and following your own rules — the habits that survive a losing week. Nothing there measures or promises returns, and none of it feeds any grade or verdict.
What do the plan tiers actually change?
Quotas, nothing else. Explorer (free), Trader and Quant Pro are sets of real, enforced limits — AI calls and tokens per day, builder-session budget, projects, workspaces and files. You pick a tier on the Choose-plan page at signup, and you can change it later from Settings → Your plan, whose View plans & switch button opens that same page. A switch takes effect immediately — your limits become the new tier's — and it does not touch your projects, runs or journal. Billing is not live: choosing a paid tier charges nothing today, it only sets your quotas. The exact numbers are on the pricing page.
Can the AI change my code or tests without me noticing?
No. Every AI proposal arrives as a reviewable diff, production code, test changes and test setup are accepted separately and explicitly, and nothing applies without your click. See why the accepts are separate.
Can I drive VeriRun Lab from my own AI coding agent?
Yes. VeriRun Lab ships an MCP (Model Context Protocol) server, so a coding agent like Claude Code, Cursor or Zed can work inside the platform on your behalf. You mint a scoped, revocable access token in Settings → Agent access (two-factor gated), point your agent's config at the server, and it acts as you — inheriting every gate you have, never more.
What an agent can do read-only, without spending: browse the feature catalog and strategy templates; read your workspace files; look up optimization studies, screener sweeps and past runs; open a run's scorecard, walk-forward manifest, and the regime / stress / price-path robustness views; compare runs; check instrument coverage and data-quality before it commits a window; and read the prop-firm rule browser, your journal and the community board. What it can do that spends or changes things is deliberately narrow and gated: run the tests → significance → preview → backtest ladder (each gate applies exactly as it does for you), and propose workspace edits — which land as draft diffs you review and accept, never auto-applied.
What it can never do, by construction — there is no tool, route or token scope for any of it: approve a strategy version, accept its own code proposal, approve data spend, unlock a holdout window, or change entitlements or tokens. Those stay human, two-factor actions. An agent's runs are stamped and searchable, and every response points back to the same dashboard view you see — so you can always check its work. See Connect an external agent (MCP) for the full setup.
Is a GO a recommendation to trade the strategy?
No. Every result on the platform is a research outcome — probabilities, not promises, as the banner on each report says. VeriRun Lab is research tooling, not trading advice.