Why one AI engine returned nothing, or half your prompts were not asked
When a run loses calls, MarqIQ shows what was lost rather than scoring the run as though every call answered. The amber banner above the tiles says how many engines answered, how many calls failed at the engine, how many MarqIQ did not get to, and what to do about each. Work down the causes below until one matches the reason on your banner. If the number itself looks wrong rather than incomplete, read How MarqIQ decides you were mentioned instead.
Before you start
Open AI Answer Visibility and read the amber banner above the four tiles. It is rebuilt from what the run stored, so it says the same thing every time you open the page.
Note
The three words on the banner mean different things. "Failed" is the engine's side. "Not asked" means no call was made — usually because that engine's quota was already spent. "Not measured" is MarqIQ's own side, and is never counted as the engine failing.
First, read the run's health
Every run carries a health line. It sits on the provenance line under the four tiles, and the same line is shown wherever the score is shown.
| What the line reads | What it means | Is the score quoted elsewhere? |
|---|---|---|
| complete: 96 of 96 answers | Every call the run set out to make answered. | Yes. |
| partial: 84 of 96 answers | Some calls answered, some did not. | Only when at least 75% answered and no engine was left silent. |
| no answers | No call answered at all. | No. The tiles read "Not measured" rather than 0%. |
| health unknown (this run predates health tracking) | A run from before health was recorded. | No. Nothing can show how much of it came back, so it is not quoted as your visibility. |
Every status is shown with its counts.
Now work down the causes below. The banner names your engine and its reason, and the first cause that matches the reason is yours.
The causes, most common first
One engine answered nothing and the action reads "Add credit to your … account"
Why: The provider refused the calls for want of credit, or against a spend limit. Waiting does not help, because nothing about the key changes with time.
Fix: Add credit to that provider account, or raise its spend limit, then click Run visibility check again. The banner names the account — OpenAI, Anthropic, Google AI Studio, Perplexity, Groq or OpenRouter — so you know which billing page to open.
An engine says the model has no quota on your key's tier
Why: A quota of zero is the tier, not usage. The key can reach the provider but not that model.
Fix: Enable billing on the key, or use a model the tier includes. Running again will not help and the message says so.
An engine answered a few calls and then every later prompt says "not asked (quota)"
Why: A refusal that lasts the whole run — a daily cap, a spend limit, an exhausted balance — stopped that engine. Rather than spend the run's time on calls that would be refused, MarqIQ stopped asking it and recorded the rest as not asked, which is the key's quota and not a failure of the engine.
Fix: Read the action under that engine. A daily cap gives the reset — "it resets at 14:00 UTC on 14 Sep", or "should have reset by now" once that time has passed — so either run again after the reset or connect a second engine and measure now.
The banner says calls were throttled
Why: The provider applied a per-minute rate limit. That is the one refusal short enough to be worth waiting out, so the run retries it rather than stopping the engine.
Fix: Run again in a few minutes. The action reads "The provider throttled these calls. Run again in a few minutes."
Calls are listed as "not measured on MarqIQ's side"
Why: MarqIQ's own time budget ran out. Each request starts engine calls for 40 seconds, and only with enough time left for a call to finish properly, so the remainder waits for the next request. A run that was never continued leaves those calls unmeasured.
Fix: Run again, or resume the run if it is still unfinished. Nothing is wrong with your key — MarqIQ's time budget is reported apart from engine failures, so this never counts against the engine.
An engine row lists several models and says "models changed during this run"
Why: The first model timed out at its full per-call budget, so the calls that started after it moved to the next vetted model. Calls already in flight finished on the model they were sent to.
Fix: Nothing to fix. Read the breakdown. Each model is listed with its own answers and failures, so a timeout is never shown beside a model that did not time out. Treat the trend with care, because this run asked two different models. The By engine card flags a model change against the previous run for the same reason.
A red banner says a model is no longer offered by its provider
Why: A daily probe asks each provider whether the model AEO measures with is still on its list. That model is set for the deployment, not in your workspace, so a withdrawal affects every workspace on that engine.
Fix: Connect a different engine so your next check still has something to measure with, and raise the banner with support — it names the engine, the model and when it was checked. Runs on that engine fail until the model is changed.
OpenRouter says none of the vetted free models is on its list
Why: MarqIQ asks OpenRouter only on models it has vetted, and none of them was being offered when the run started. No call was made, so this is recorded as not asked rather than as a failure.
Fix: Connect a second engine, or run again later. An engine that was listed but not asked was never part of the run, so it does not drag the score down.
An engine answered but the calls are counted as failed, with reasons like "answer cut off" or "blocked by the provider"
Why: A successful response is not always an answer. Each provider has its own way of saying the text is incomplete inside a response that otherwise looks fine, and MarqIQ reads all of them: "answer cut off", "blocked by the provider", "declined to answer", an empty body, or "provider error mid-answer".
Fix: Nothing on your side. A cut-off answer is counted as failed rather than as "answered, did not name you", so it does not pull your visibility down. Run again — these are usually one-off.
An engine's key was changed while the run was going
Why: The rest of that engine's calls were not made, because they would have been measured on a different account from the answers already stored.
Fix: Run a fresh check once the key is settled. The reason reads "not asked: … key changed during the run, so the rest of its calls were not made".
The score is there but the breakdowns say the answers could not be saved
Why: The answers came back and the write failed after its retries. The score above was taken before the save failed, so it is real. There is nothing left to break down.
Fix: Run a new check when you are ready. The empty card says which run it means and its date.
When the run itself is stuck
These four are about the run, not about an engine: it never finished, or a new one will not start.
The run stopped part-way and nothing has appeared since
Why: A run that stops stays unfinished. Its answers are stored, but no screen shows or scores them, because every reader takes finished runs only.
Fix: Click Resume check beside the run button, or Resume on the amber banner. It continues from the calls still pending and re-asks nothing.
Resume is not offered and only Discard is
Why: The run started more than 24 hours ago. Resuming it would score answers gathered on different days as one measurement.
Fix: Click Discard, then confirm. The answers stay stored but are not shown or scored anywhere, and a new check can start straight away.
Discard is greyed out and reads "Being worked on"
Why: A request holds the run right now — another tab, or one from before the page reloaded — and discarding would throw away calls being made this minute.
Fix: Wait. The page re-checks every 10 seconds and the button comes back when that request is done.
Starting a check answers that one is already running
Why: One check per workspace at a time, held by a 75-second lease. Either another check is running, or one was stopped and its lease has not run out yet.
Fix: Wait for the time the message gives. A new check can start then at the latest, whichever of the two it was.
What the per-prompt chips mean
Open Prompts and read the Answers from its last run column. Each engine gets a chip for every prompt, so an engine that failed is shown as failed rather than being absent.
| Chip | What it means |
|---|---|
| ChatGPT ✓ | The answer named you. |
| ChatGPT — | The engine answered and did not name you. This is a real result, not a fault. |
| ChatGPT failed | The call was made and the engine gave no usable answer. |
| ChatGPT not asked (quota) | The engine had already been stopped by a quota refusal, so no call was made for this prompt. |
| ChatGPT not measured | MarqIQ did not get to this call — its own time budget, not the engine's. |
| ChatGPT no answer recorded | A run from before failures were recorded. |
Hover a chip for the model that answered. A failed, not-asked or not-measured chip also carries the recorded reason; a tick or a dash has none.
Whether to run again or wait
- Run again now when the cause was a timeout, a throttle that has passed, a model fallback, or MarqIQ's own time budget.
- Run again after the reset when a daily cap is named, using the reset time on the banner.
- Fix billing first when the reason is no credit, no model quota on the tier, or a spend limit. No amount of waiting clears those.
- Connect another engine when one provider is going to be out for the day and you need a figure now.
Take care
Do not read a partial run as a fall in visibility. An engine that gave nothing is missing from the rate whatever caused it, and that moves the number in either direction. For that reason a partial run with a silent engine is not quoted as your visibility anywhere, and a run-over-run change is withheld unless both runs got every answer back.
If it did not work
The score looks unchanged although an engine clearly failed
Why: The visibility figure is frozen when the run finishes and is never recomputed. You are reading the last finished run, not the one that failed.
Fix: Check the date on the line under the tiles. An unfinished or discarded run never replaces the figure above it.
An engine row says it answered only aided prompts
Why: Every answer that engine gave was to a prompt naming your brand, and aided prompts are left out of every score.
Fix: Add prompts that do not name you on the Prompts tab, then run a new check. Choose the questions to track explains the rule.
A key MarqIQ accepted fails on every run
Why: Three cases are not checked against a model at connect time. OpenRouter picks its model fresh on every run. Perplexity is proved against an authenticated read. And any provider whose model list answered but could not be read is let through on the key alone.
Fix: Read the reason the banner gives for that engine and treat it as one of the causes above. Connect a second engine so the next check still has something to measure with.
Next steps
Related articles
Was this article helpful?