Repository navigation
Conversation
The keyless message for an exhausted daily allowance called it a rate limit and gave the agent no line to pass on, so the signup link rarely reached the user. It now asks the agent to finish the task without Firecrawl and end its answer with one line that carries the signup link. Both default server instructions now open with one sentence for any tool that reports credits or free usage ran out. It leads so clients that cut instructions short keep it. The rest of the instructions is unchanged, and the routing copy still sits inside the first 2,048 characters. Release 3.30.3.
There was a problem hiding this comment.
All reported issues were addressed across 14 files
Reply with feedback, questions, or to request a fix.
View guided diff | Turn on auto-fix | Re-trigger cubic
The message asked the agent to end its answer with the signup line, then added the setup steps after it, so the line was not the last thing the agent read. The setup steps now come first and the relay line closes the message. The end to end check also covers firecrawl_parse, whose keyless calls reach the API through a separate path.
There was a problem hiding this comment.
0 issues found across 3 files (changes from recent commits).
Confidence score: 5/5
- Automated review surfaced no issues in the provided summaries.
- No files require special attention.
Auto-approved: Fixes keyless quota-exhaustion messaging so agents relay the signup line, prepends matching guidance to both server instruction profiles, and updates tests/snapshots; bounded to messaging and verified by new e2e and smoke tests.
View guided diff | Turn on auto-fix | Re-trigger cubic
"Free daily usage" read like the free plan, which gives 1,000 credits a month. The daily cap only applies to use without an account, so the message now says so, and the relay line tells the user what signing up gets them. The instruction sentence names both cases, credits running out on an account and the daily limit without one, so it cannot be read as the free plan or match an ordinary rate limit.
There was a problem hiding this comment.
All reported issues were addressed across 11 files (changes from recent commits).
Reply with feedback, questions, or to request a fix.
View guided diff | Turn on auto-fix | Re-trigger cubic
Dismissed because Cubic found issues in a newer review.
A keyless 429 without a known reason shared the daily limit message, so it named a cause that may not apply and told the agent to stop. It now gets a generic message. firecrawl_crawl started crawls with a raw HTTP call, so an account out of credits saw only "Request failed with status code 402". It now relays the API's text like search does. The instruction sentence returns to the tested wording, widening only the trigger to what the errors actually say.
There was a problem hiding this comment.
0 issues found across 11 files (changes from recent commits).
Confidence score: 5/5
- Automated review surfaced no issues in the provided summaries.
- No files require special attention.
Auto-approved: Bounded fix to out-of-credits messaging: crawl now relays the API's error text, keyless quota and transient-limit messages are corrected with a relay line, server instructions are updated, and e2e/smoke tests pin the behavior.
View guided diff | Turn on auto-fix | Re-trigger cubic
Why
When an account runs out of credits, or use without an account reaches its daily limit, the agent should finish what it can and tell the person how to keep going. Today a crawl that hits a 402 shows only
Request failed with status code 402, the keyless message calls its limit a rate limit and gives the agent nothing to relay, and the server instructions are silent on both.Summary
Server instructions (
src/server.ts): both default profiles open with one sentence, first so clients that shorten instructions keep it:The trigger names both cases as the errors state them, and matches neither the free plan's monthly credits nor an ordinary rate limit. The rest of the instructions is unchanged: 3,411 characters authenticated and 1,565 keyless, inside Claude Code's current 4,096 limit, with the pinned routing copy still ending at character 1,774, inside the older 2,048 limit.
Daily limit without an account (
src/recovery.ts): search, scrape and parse returnThe relay line closes the message. A 429 without a known reason gets a generic message instead, since its cause may be transient.
Crawl errors (
src/server.ts):firecrawl_crawlrelays the API's error text, so an account out of credits sees the upgrade link. Search (3.30.2), scrape, map and agent already did.Release 3.30.3.
Test Plan
pnpm test: 171 of 171 pass.reason: "credits"returnKEYLESS_QUOTA_EXHAUSTEDending with the relay line; a 429 without a reason returnsKEYLESS_LIMIT_REACHEDwith no daily limit claim and no relay line.Request failed with status code 402.tsc --noEmitand eslint are clean.