Skip to main content
This reference explains the log lines under Sync & API logs and Replicator logs, starting with the most common structured fields. To view them, open the PowerSync Dashboard, select your project and instance, and go to the Logs view. If you self-host, use your own log aggregator. For error code lookups, see Error Codes Reference. For how to view, filter, and export logs, see Monitoring and Alerting.

Field Glossary

Most log lines carry structured fields alongside their human-readable message. Because message wording can change between Service versions, filter on these fields rather than the message text. The table below covers the fields on most lines, but a line can carry many more (especially with metadata expanded), and each source connector adds its own. Treat fields not listed here as additional context, and see the Detailed Event Reference for fields specific to individual events.

Severity and Recovery

A line’s severity (level) does not necessarily tell you whether you need to act. Most error and warn lines describe transient events that the Service recovers from on its own:
  • Per-session errors stay isolated to the affected client. Sync stream error and Streaming sync request failed tear down a single stream, and that client reconnects on its own. Service-wide failures such as a pod restart are the exception. They interrupt all connected clients until the Service recovers.
  • The replicator retries source-database operations automatically, so transient connection drops, query timeouts, and keep-alive failures are caught, logged, and retried.
  • Some error lines, such as Replication failed., trigger a pod restart that the supervisor handles automatically. Operator action is needed only when the cause persists across restarts.
To judge whether a line needs action, each table below includes a Recovery column:
MongoDB is the storage backend for all PowerSync Cloud instances, which some lines reflect (for example Successfully activated storage: mongodb. or checksum errors like PSYNC_S2403). If you self-host on Postgres-backed storage, those lines look different.

Sync & API Logs

Produced by the PowerSync Service API pods. These cover client sync sessions (WebSocket and HTTP), HTTP API requests, checkpoint calculations, and write checkpoint endpoints.

Sync Session Lifecycle

These events trace a client’s sync session from start to finish. Searching for a rid returns both ends. A short stream_ms paired with operations_synced: 0 usually means the connection was opened and torn down before any sync line was sent. This is normal when many clients reconnect at once, or when a client cancels quickly. For the full field breakdown of each line, see Sync session field details below.

Close Reasons

The close_reason field on Sync stream complete takes one of these values:

Checkpoint Events

The PowerSync Service computes checkpoints to decide whether each connected client needs new data. In steady state you mostly see Updated checkpoint lines with empty updated/removed arrays, which are rechecks where nothing changed for that user.
For the full payload breakdown, see Checkpoint payload anatomy below.

Common Errors in Sync & API Logs

For the full code list, see Error Codes Reference.

Replicator Logs

Produced by the replication pod that pulls changes from your source database (Postgres, MongoDB, MySQL, or MSSQL) and writes them into the PowerSync storage layer.
Most replicator lines are prefixed with the Sync Config identifier in brackets, for example [powersync_69b93ff7358aa0646ff0dbca_1_e6dc]. The format is [powersync_<instance_id>_<group_id>_<hash>]. The group_id increments when the Sync Config changes, so a new version means a new group. Use this prefix to scope log queries to a particular Sync Config iteration.

Streaming Replication (Steady State)

Once initial replication is done, the replicator streams changes. The Flushed line is the most important steady-state line and the bulk of normal replicator logs.
The same numbers appear as a structured flushed object on the line, easier to filter on than the message text:
If Replication lag is absent, the flush had no source-side change timestamps to derive it from. This happens only on snapshot flushes, never steady-state.

Replication Health

These lines report problems in the replication loop. Almost all are non-fatal, and the replicator handles them on its own.

Common Errors in Replicator Logs

For the full code list and additional connector-specific codes, see Error Codes Reference.

Detailed Event Reference

The sections above cover the most common lines. The events below are lower-frequency or verbose, collapsed here to keep the page scannable but documented in full.

Sync & API Logs

Fields on Sync stream started

Fields on Sync stream complete

Fields on Sync stream error and Streaming sync request failed

Example payloads:
Structured fields on the same line include checkpoint (the op_id), buckets (count), parameter_query_results (count), and on Updated checkpoint only, updated and removed counts as integers. These are easier to filter on than parsing the message body.
Every HTTP access log line carries these structured fields. They are not visible in the rendered message but are filterable.
These appear when the API pod is near its configured concurrent-sync limit.Frequent Sync concurrency limit reached typically means traffic exceeds what the pod can handle, or the per-pod cap is set too low. See Production Readiness Guide.
A long delay between these two lines means the replicator is behind. If sustained, see Replication Lag.

Replicator Logs

Fired when a replication pod starts, stops, or restarts. Outside of a deploy, these usually mean the pod was killed and restarted by the supervisor.
Triggered by SIGTERM (deploys, scale-down) or by a fatal error. A clean shutdown ends with Exiting. Lines you will see in order:
If you see Replication failed. or Fatal replication error before the shutdown lines, the pod is being restarted by the supervisor after a crash.
The first time a Sync Config iteration is set up, every table covered by it is copied over. The exact wording differs by source database.
Beyond the Flushed line, the streaming phase emits these connector-specific lines.The Flushed line’s structured flushed object maps to the message components as follows:
The MSSQL connector polls CDC capture tables rather than streaming a logical replication slot.