Metis feedbeta

What each error means

Your Metis calls our RPC address and reads our gRPC stream. When we can't give it exact data we answer with an error that says why, instead of data we are not sure of. Metis tries again by itself, so mostly there is nothing for you to do.

-32099 account not served

“account … is not served here (not one of the accounts this endpoint's Metis uses)”

Your Metis asked for an account our own Metis does not use, so we don't carry it. The whole call is refused, not only that account. Mostly it means your Metis runs another version than ours (v7.1.4) or other market settings. Run the same version with the same markets. If it keeps coming, send us the address from the message.

-32005 not ready, or busy

“too slow”: the stream was ended

gRPC status RESOURCE_EXHAUSTED, “too slow for the feed, reconnect”

Your Metis did not take the stream as fast as it came, and we ended the stream rather than let it fall behind. Metis reconnects by itself. If it happens often, the machine or its connection can't keep up: one Metis takes about 11 MB/s from us, so it needs a steady 100 Mbit/s or more, and a processor that is not busy with something else.

“the upstream changed”, “shutting down”: the stream was ended

gRPC status UNAVAILABLE, “the upstream changed, reconnect” or “shutting down”

The feed lost touch with the node for a moment, or it restarts. It ends every stream rather than send one with a hole in it. Your Metis reconnects by itself and gets “not ready” until the feed's data is exact again: a few minutes after a deploy.

“too many account lists wait to be read”

gRPC status RESOURCE_EXHAUSTED, “too many account lists wait to be read, try again shortly” or “no room for one more stream, try again later”

A Metis sends its account lists again every few hours, and we read them a few at a time. More lists were waiting than we hold at once: yours (256 MB, more than one Metis sends), or everyone's together. Your Metis reconnects by itself and sends them again. “no room for one more stream” means the feed has as many streams open as it can hold; if it keeps coming, tell us.

Something a Metis does not ask for

RPC: -32601 “Method not found”, -32602 “only processed or confirmed commitment with base64+zstd encoding and no dataSlice is served”. gRPC: INVALID_ARGUMENT, “… not served here: account lists, slots and blocks_meta at processed only”.

We serve what a Metis of our version (v7.1.4) asks for, and nothing else: this is not a general Solana RPC. If your Metis gets one of these, it runs another version or other settings than ours. Another program that uses the key needs an RPC of its own.

The key is refused

RPC: HTTP 401, -32001 “invalid api key”. gRPC: UNAUTHENTICATED, “invalid x-token” or “key revoked”.

Your time has run out, you made a new key (the old one stops within seconds), or the key was copied wrong. Your account page shows the key and until when it works. “too many streams for this key” means more than one Metis uses it.