Lock in $67
TROUBLESHOOTING

Your account is enabled and still returns nothing

Everyone checks whether the connector is switched on. Almost nobody checks the second flag, which is the one that decides whether the account will actually answer.

Espen Opdahl Published 5 min read
The short answer

An ad account can have the Meta ads connector switched on and still refuse to answer questions. The account list returns two separate flags, and everyone has only heard of one of them. is_ads_mcp_enabled is the rollout gate. is_queryable is whether the account will actually return entities. I ran the account list across the accounts I have access to and found one that was enabled and not queryable at the same time — its not_queryable_reason was the literal string "Unknown error". If you are troubleshooting a connector that "works" but returns nothing, this is the field to read.

Every guide to this connector treats access as one switch: either your account is in the rollout or it isn't. That is the question I answered in the post on is_ads_mcp_enabled: false, and it is the question everyone asks. It is also only half of the gate.

What the account list actually returns

The tool that enumerates your ad accounts returns more per account than a name and an ID. These are the fields that decide whether anything else you try will work:

FieldWhat it governsIf it is wrong
is_ads_mcp_enabledWhether the account is in the rollout at allNothing works. Nothing to do but wait.
is_queryableWhether the account will return entitiesReads fail even though the account is enabled
not_queryable_reasonWhy, when it is not queryableMay be uninformative — see below
account_statusMeta's own account stateA non-ACTIVE status can take queryability with it
has_payment_methodWhether a payment method is attachedNothing can go live, drafts are still fine

The two that matter for troubleshooting are the middle three, and none of them appears in any guide I have read.

worth knowing Enabled and queryable are independent. An account can be one without the other.

This is the part that costs people an evening. is_ads_mcp_enabled: true reads like a green light, so when a request comes back empty the natural conclusion is that the prompt was wrong, or the date window, or the connector. Reading is_queryable first turns a half-hour of re-prompting into one line of output.

The reason field can be useless, and that is the finding

When I ran this, the account that came back is_queryable: false carried a not_queryable_reason of "Unknown error". Not a permission message, not a billing message — the string "Unknown error". Its account_status was also not ACTIVE.

So the honest shape of this is: the connector will tell you an account cannot be queried, and it will sometimes be unable to tell you why. That is worth knowing before you go looking for a misconfiguration on your side that does not exist. In the case I saw, the account's status was the thing that had changed — not anything about the connector, the permissions, or the prompt.

A tool that reports "Unknown error" is not broken. It is telling you the answer is somewhere the tool cannot see, which usually means account state rather than connector state.

Checking these flags before anything else is the first thirty seconds of the routine, and it is the cheapest debugging step there is. See what the rest of the week looks like →

How to read your own

One prompt, no setup, and it answers the enabled question and the queryable question at once:

List every ad account I have access to. For each one show me
whether it is MCP-enabled, whether it is queryable, the reason
if it is not, and its account status.

Read it as a sequence rather than a list. If is_ads_mcp_enabled is false, stop — that is a rollout gate and waiting is the only move. If it is true but is_queryable is false, look at account_status next, because that is where the cause usually is. If both are true and a read still comes back empty, then it is worth suspecting the request — most often the date window. Where you hold several accounts, run that sequence over the whole list before you ask anything, because every read is scoped to one account and a portfolio question can skip one without saying so.

What this does not tell you

  • It is not documented. Meta does not publish the semantics of these fields for this connector. Everything above is observation from live output, dated, and it can change without an announcement.
  • A false does not always explain itself. That is the whole point of this post. Treat not_queryable_reason as a hint, not an answer.
  • It says nothing about permissions. Queryability is a property of the account. What you are allowed to do with it is a separate question and fails differently.
  • Do not push past it. If an account reports itself as not queryable, entity reads on it are not expected to work, and retrying in a loop just wastes the evening you were trying to save.

Try this tonight Run the prompt above across every account you have, not just the one you are working in. Rollout and queryability are both per-account, so the account you happen to be using is the worst possible sample size — and if one comes back non-queryable, check its status before you change anything else.

If you have not connected yet, the setup guide covers what the connector exposes once you are in, with the date it was checked on it.

Frequently asked questions

Is is_queryable the same as the rollout flag?

No, and that is the confusion this post exists to remove. The rollout flag decides whether the connector is available on the account at all. Queryability decides whether that account will answer. An account can pass the first and fail the second.

What do I do about "Unknown error"?

Look at the account's own status in Business settings rather than at the connector. In the case I saw, account state was the thing that had changed, and nothing about the connector or the prompt was involved.

Will it fix itself?

If the cause is account state, it resolves when the account state does — which is a billing or ownership question, not a technical one. If the cause is the rollout, waiting is genuinely the only option.

Does this affect drafting too?

Reads are what fail visibly. Since the sane workflow reads before it drafts, a non-queryable account tends to stop you at the first step rather than producing a bad draft — which is the better failure of the two.

The routine that runs after the flags are green

The Claude Ads Operator is the weekly pass over the account — what to ask, how to find the real winners, and what an AI is never allowed to touch.

See what's inside — $67 founding price

Pre-sale: the modules are still being recorded and founding members get the checkout link first. No charge today. Public price $97.

Espen Opdahl Writes The Claude Ads Operator. I run Meta ad accounts through Claude and Meta's official ads connector, and I write down what actually happens — including the parts that don't work. Not affiliated with Meta or Anthropic.