Back to Realtime

Error Operational Codes

ERROR_CODES.md

2.121.223.5 KB
Original Source

Error Operational Codes

This is the list of operational codes that can help you understand your deployment and your usage.

CodeDescription
TopicNameRequiredYou are trying to use Realtime without a topic name set
InvalidJoinPayloadThe payload provided to Realtime on connect is invalid
RealtimeDisabledForConfigurationThe configuration provided to Realtime on connect will not be able to provide you any Postgres Changes
TenantNotFoundThe tenant you are trying to connect to does not exist
MissingAPIKeyNo API key was provided in the x-api-key header or apikey query parameter
ErrorConnectingToWebsocketError when trying to connect to the WebSocket server
UnableToDeleteTenantError when trying to delete a tenant
UnableToSetPoliciesError when setting up Authorization Policies
UnableCheckoutConnectionError when trying to checkout a connection from the tenant pool
UnableToSubscribeToPostgresError when trying to subscribe to Postgres changes
ReconnectSubscribeToPostgresPostgres changes still waiting to be subscribed
ChannelRateLimitReachedThe number of channels you can create has reached its limit
ConnectionRateLimitReachedThe number of connected clients has reached its limit
ClientJoinRateLimitReachedThe rate of joins per second from your clients has reached the channel limits
DatabaseConnectionRateLimitReachedThe rate of attempts to connect to tenants database has reached the limit
MessagePerSecondRateLimitReachedThe rate of messages per second from your clients has reached the channel limits
RealtimeDisabledForTenantRealtime has been disabled for the tenant
UnableToConnectToTenantDatabaseRealtime was not able to connect to the tenant's database
DatabaseLackOfConnectionsRealtime was not able to connect to the tenant's database due to not having enough available connections
DatabaseIpVersionIsIpv4The tenant database host resolved to an IPv4 address while an IPv6 connection was expected
RealtimeNodeDisconnectedRealtime is a distributed application and this means that one the system is unable to communicate with one of the distributed nodes
MigrationsFailedToRunError when running the migrations against the Tenant database that are required by Realtime
StartReplicationFailedError when starting the replication and listening of errors for database broadcasting
ReplicationConnectionTimeoutReplication connection timed out during initialization
ReplicationConnectionDownThe replication connection was terminated and a recovery window has been opened
ReplicationConnectionRecoveryFailedThe database check failed while trying to recover the replication connection
ReplicationConnectionWatchdogTimeoutThe replication connection stopped responding and was flagged by its watchdog
ReplicationMaxWalSendersReachedMaximum number of WAL senders reached in tenant database, check how to increase this value in this link
PartitionCreationFailedError when creating partitions for realtime.messages
MissingPartitionRealtime was unable to find the expected messages partition
ErrorStartingPostgresCDCError when starting the Postgres CDC extension which is used for Postgres Changes
ReplicationSlotBeingUsedThe replication slot is being used by another transaction
PoolingReplicationPreparationErrorError when preparing the replication slot
PoolingReplicationErrorError when pooling the replication slot
CheckOidsErrorError when fetching the publication tables (OIDs) during the periodic check; the existing OIDs, replication slot and subscribers are left untouched
SubscriptionCleanupFailedError when trying to clean up all subscriptions on subscription manager initialization or OID change
SubscriptionDeletionFailedError when trying to delete a subscription for postgres changes
ReplicationPollerConnectionFailedError when the replication poller process fails to connect to the database on startup
ReplicationPollerMaxRetriesReachedThe replication poller gave up after the maximum number of consecutive retries and stopped the tenant's Postgres Changes workers
DropReplicationSlotFailedError when dropping the replication slot after the publication became empty; the poller stops so the temporary slot is released with the connection
SubscriptionManagerConnectionFailedError when the subscription manager process fails to connect to the database on startup
PgStatActivityQueryFailedError when querying pg_stat_activity to diagnose a replication slot conflict
RateCounterErrorError when retrieving the subscription rate counter, falling back to blocking new subscriptions
UnableToCheckProcessesOnRemoteNodeError when trying to check the processes on a remote node
UnhandledProcessMessageUnhandled message received by a Realtime process
UnableToTrackPresenceError when handling track presence for this socket
UnknownPresenceEventPresence event type not recognized by service
IncreaseConnectionPoolThe number of connections you have set for Realtime are not enough to handle your current use case
IncreaseSubscriptionConnectionPoolThe subscription connection pool hit too many database timeouts and should be increased
RlsPolicyErrorError on RLS policy used for authorization
UnableToConnectToProjectUnable to connect to Project database
JwtSignatureErrorJWT signature was not able to be validated
MalformedJWTToken received does not comply with the JWT format
UnauthorizedUnauthorized access to Realtime channel
RealtimeRestartingRealtime is currently restarting
InvalidPresencePayloadPayload from track event sent to Presence isn't a map
UnprocessableEntityReceived a HTTP request with a body that was not able to be processed by the endpoint
InitializingProjectConnectionConnection against Tenant database is still starting
TimeoutOnRpcCallRPC request within the Realtime server has timed out.
ErrorOnRpcCallError when calling another realtime node
RpcErrorError returned when calling another realtime node over RPC
ErrorExecutingTransactionError executing a database transaction in tenant database
SynInitializationErrorOur framework to synchronize processes has failed to properly startup a connection to the database
JanitorFailedToDeleteOldMessagesScheduled task for realtime.message cleanup was unable to run
UnableToEncodeJsonAn error were we are not handling correctly the response to be sent to the end user
UnableToBroadcastChangesError when trying to broadcast database changes to subscribers
WarnSendingBroadcastMessageWarning when realtime.send or realtime.send_binary cannot insert the message. See the troubleshooting guide.
UnexpectedMessageReceivedAn unexpected message was received by the replication connection process
ErrorRunningQueryError when running a query against the tenant database
QueryCanceledA database query was canceled, usually due to a statement timeout
UnknownErrorAn unhandled error occurred
UnknownErrorOnControllerAn error we are not handling correctly was triggered on a controller
UnknownErrorOnChannelAn error we are not handling correctly was triggered on a channel
UnknownErrorOnCounterAn error we are not handling correctly was triggered while reading a rate counter
MusterJoinErrorError or timeout while waiting for the channel's Muster membership to land during join
PresenceRateLimitReachedLimit of presence events reached
ClientPresenceRateLimitReachedLimit of presence events reached on socket
UnableToReplayMessagesAn error while replaying messages
JwtSignerErrorFailed to generate a JWT signer — check your JWT secret or JWKS configuration
MalformedWebSocketMessageReceived a WebSocket message that is empty, invalid JSON, or missing required fields (ref, topic, or event). The connection is kept alive but the message is dropped
UnknownErrorOnWebSocketMessageAn unexpected error occurred while processing an incoming WebSocket message. The connection is kept alive but the message is dropped
ReplicationSlotLagTooHighThe replication slot WAL lag has exceeded 50% of max_slot_wal_keep_size. The replication connection is shut down and will be restarted to prevent the slot from being invalidated by PostgreSQL
ReplicationSlotLagCheckSkippedThe periodic replication slot lag check could not be completed, typically because the tenant database connection was unavailable. The check is skipped and retried on the next watchdog interval
HttpServerErrorPhoenix converted an unhandled exception into a 5xx HTTP response. The log includes the underlying error and status to explain a server error that request metrics alone would not surface
HttpClientErrorPhoenix converted an exception into a 4xx HTTP response (for example a request to an unknown route). The log includes the underlying error and status
JoinsRateLimitReachedThe rate of joins per second from your clients has reached the limit and the connection was refused
InvalidJWTTokenThe JWT provided on connect is expired or is missing required claims (role and exp)
PrivateOnlyThe connection was rejected because this project only allows private channels
UnableToHandleBroadcastError when handling a broadcast message
UnableToHandlePresenceError when handling a presence message on a channel
ChannelShutdownThe channel was shut down and an error system message was pushed to the client
ReplicationRecoveryWindowExceededThe replication connection recovery window was exceeded and the connection was terminated
MigrationCountMismatchThe cached migrations_ran count did not match the tenant database and is being reconciled
MigrationCountMismatchReconcileFailedFailed to reconcile the migrations_ran count mismatch between the cache and the tenant database
MetricsPusherTimeoutA metrics push task did not finish within its one minute window and was killed
MetricsPusherTaskExitedA metrics push task exited unexpectedly before completing
MetricsPusherFailedRealtime failed to push metrics to the configured endpoint
MetricsPusherExceptionAn exception was raised while pushing metrics to the configured endpoint