- DATE:
- AUTHOR:
- PowerSync Product Team
PowerSync Service: v1.15.8
We are pleased to announce the release of version 1.15.8 of the PowerSync Service. The PowerSync Service is published to Docker Hub as journeyapps/powersync-service for use in self-hosted setups. PowerSync Cloud instances receive Service updates automatically.
See the full changelog below.
Have any questions or feedback? Chat with us and the PowerSync community on Discord.
Changelog
v1.15.8 - 2025-10-17
[IMPROVED] Compact action to only process buckets changed since the last run. (PR #375)
[IMPROVED] Minor performance and stability improvements by upgrading the MongoDB driver. (PR #374)
[FIXED] Sync Streams: Support table aliases in sync stream queries. (PR #377)
[FIXED] Checksum calculation timeouts during initial replication on deployments with many buckets. (PR #375)
1.15.7 - 2025-09-19
[FIXED]
SnapshotTooOlderror when evaluating parameter queries in some cases. (PR #366)
1.15.6 - 2025-09-10
[IMPROVED] Input type conversion now happens during the source DB streams to correctly handle custom types in primary keys. (PR #363)
1.15.5 -2025-09-08
[IMPROVED] Node 22.19.0 other minor dependency updates. (PR #361)
1.15.4 - 2025-09-08
[IMPROVED] Avoid frequent write checkpoint lookups when the user does not have one. (PR #355)
[IMPROVED] Allow
nullas stream parameter to represent not providing any parameters. (PR #357)
1.15.3 - 2025-09-04
[ADDED] The
custom_postgres_typescompatibility option in theconfig:block in Sync Rules. When enabled, domain, composite, enum, range, multirange and custom array types will get synced in a JSON representation instead of the raw Postgres wire format. (PR #352)[FIXED] Checksum calculation issues with large buckets. (PR #354)
1.15.2 (2025-09-02)
[FIXED] [MongoDB Storage]: "E11000 duplicate key error collection: powersync_demo.bucket_state" in some cases on a Sync Rules deploy. (PR #346)
[FIXED] A rare issue of incorrect checksums on fallback after the checksum query timed out. (PR #351)
1.15.1 (2025-08-29)
[IMPROVED] The performance of the
compactjob. (PR #343)[FIXED] Pre-computing of checksums after intial replication which caused replication timeouts. (PR #343)
1.15.0 (2025-08-28)
[ADDED]
gzipandzstdcompression support in HTTP Streams. (PR #329)[ADDED] permessage-deflate compression support for WebSockets connections. (PR #337)
[ADDED]
config:option in Sync Rules which can be used to opt-in to new features and backwards-incompatible fixes of historical issues with the PowerSync Service. (PR #331)[ADDED] The
timestamps_iso8601option in theconfig:block in Sync Rules. When enabled, timestamps are consistently formatted using ISO 8601 format. (PR #331)[ADDED] The
fixed_json_extractcompatibility option. When enabled, JSON-extracting operators are updated to match SQLite more closely. (PR #335)[ADDED] The
versioned_bucket_idsoption. When enabled, generated bucket IDs include the version of Sync Rules. This allows clients to sync more efficiently after updating Sync Rules. (PR #333)
[ADDED] Support for Sync Streams, a simpler and improved way to define what data gets synced to clients. This feature requires SDK-level updates to work, so details will be shared once it's usable. (PR #313)
[IMPROVED] Refactored the interface between the Service and Sync Rule bindings in preparation for Sync Streams. (PR #307)
[IMPROVED] Image annotations and attestations to the built
@powersync/service-imageDocker image for richer metadata and to help with vulnerability scanning. (PR #322)[IMPROVED] [MongoDB Storage] Create a persisted checksum cache when compacting buckets. (PR #341)
[IMPROVED] [MongoDB Storage] Increase checksum timeouts, making it safe to sync up to around 10 million operations per user. (PR #338)
[IMPROVED] [MySQL connector] Extended the replication keep-alive mechanism for cases where the source database is idle for long periods of time. (PR #314)
[IMPROVED] Update license abbreviation to the now-standardized
FSL-1.1-ALv2. (PR #318)[IMPROVED] Upgraded Node, Sentry, Fastify and OpenTelemetry dependencies. (PR #320)
[FIXED] Removed the binary_data field on sync requests to fix inconsistencies between binary data being requested and actually being sent. (PR #332)
1.14.0 (2025-08-05)
[ADDED] Added opt-in support for streaming sync changes in BSON format via
/sync/stream, which enables binary data transport without RSocket/WebSockets. (PR #310)[ADDED] Enabled automatic detection and handling of MySQL schema changes affecting replicated tables. (PR #287)
[IMPROVED] Added automatic configuration for Supabase asymmetric JWT signing keys (JWKS) when using Supabase Auth and Supabase-hosted databases and removed legacy JWT secret support. (PR #311)
[IMPROVED] Replication diagnostics: The Service now reports issues when the replication stream is down or idle and reduced Postgres connections' keepalive interval from 5 to 1 minute. (PR #304)
[IMPROVED] MongoDB Storage: The
Compactaction now also compacts parameter lookup storage. (PR #315)[IMPROVED] Standardized 404 error responses in the sync service using a fastify-based custom handler. (PR #305)
[FIXED] Delay switching over to new sync rules until we have a consistent checkpoint, which fixes a replication lag issue with high data volumes. (PR #308)
1.13.3 (2025-06-29)
[FIXED] WebSocket sync endpoints now surface specific token authentication errors instead of the generic “[PSYNC_S2106] Authentication required”, bringing them in line with HTTP streams. (PR #288)
[FIXED] A regression in 1.13.0 with MongoDB initial snapshot queries where collections with mixed
_idtypes didn't replicate correctly. (PR #290)
1.13.2 (2025-06-20)
[FIXED] Sync rule clearing process to not block sync rule processing. (PR #284)
1.13.1 (2025-06-19)
[FIXED] Checksum aggregation for MongoDB storage buckets exceeding 4 million operations by treating checksums as 64-bit integers. This prevents repeated checksum failure errors on the client. (PR #282)
1.13.0 (2025-06-19)
[IMPROVED] Implemented resuming of initial replication snapshots for both Postgres and MongoDB sources, so interrupted initial replication (e.g. when deploying a sync rule update) can pick up where it left off. (PR #163)
[IMPROVED] Postgres: Added a check that warns when Row-Level Security would block the replication role. (PR #275)
[IMPROVED] Replaced change streams on MongoDB storage buckets with better mechanisms due to their performance overhead. (PR #276)
[IMPROVED] Exposed a
powersync_replication_lag_secondsmetric to help diagnose and alert on replication delays. (PR #272)[IMPROVED] Added a configurable limit for the MySQL binlog processing queue to cap memory use under heavy write loads. (PR #269)
[FIXED] Cleanly interrupt clearing of MongoDB storage when the process is stopped/restarted. (PR #279)
[FIXED] Exit gracefully when the MongoDB driver reports a “topology is closed” error. (PR #278)
1.12.1 (2025-05-29)
[FIXED] An issue in MongoDB replication where batching logic could cause inconsistencies. (PR #271)
[IMPROVED] Clarified the types of oplog entries. (PR #270)
[IMPROVED] Cleanup on internal sync rules implementation and APIs. (PR #267)
1.12.0 (2025-05-14)
[ADDED] A JSON Schema for the PowerSync service configuration file, enabling self-hosted and local development environments to validate and receive autocomplete suggestions in their YAML configurations. (PR #257)
[ADDED] MongoDB: Support for plain "mongodb://" URIs for replica sets (multiple hostnames). (PR #250)
[IMPROVED] Reworked health check probe system: previously, probes required write access to the filesystem with no option to disable this. The new design adds HTTP-based probes and allows disabling filesystem probes. (PR #254)
[IMPROVED] Added support for WebSocket requests to be encoded as JSON, allowing more SDKs to use WebSockets as a transport protocol for receiving sync lines. Also allowed JSON payloads for RSocket, removing the need for BSON deserialization in clients. (PR #256)
[IMPROVED] Restored support for interrupting checkpoints without affecting unrelated sync buckets, preventing unnecessary sync interruptions. (PR #239)
[IMPROVED] Added additional log metadata on sync requests to aid in debugging and monitoring. (PR #261)
[FIXED] Corrected Postgres
op_idsequence initialization to prevent potential issues in development setups where certain rows are ignored during sync. (PR #260)[FIXED] Improved authentication error handling by providing clearer error messages and adding relevant token or configuration details to service logs. (PR #258)
1.11.3 (2025-05-07)
[FIXED] MongoDB: Resume token handling when no events are received. (PR #251)
[FIXED] Postgres bucket storage: The
has_moreflag for data batches falsely reported whether more data was available, resulting in mismatched checksums which caused entire buckets to re-download. (PR #255)[FIXED] Missing
powersync_parameter_storage_size_bytesparameter for metrics reporting.
1.11.2 (2025-04-24)
[ADDED] Added schema generators for Kotlin, Swift and .NET. (PR #243)
1.11.1 (2025-04-22)
[FIXED] Slow clearing of
bucket_parametersby using an index. (PR #244)
1.11.0 (2025-04-10)
[IMPROVED] Refactored metrics handling to use a
MetricsEnginewhich forms part of the Service context, decoupled from OpenTelemetry and centralizing metric creation for improved testability and reuse. (PR #221)
1.10.2 (2025-03-27)
[FIXED] Disabled checkpoint interruption for now to prevent issues where large sync batches would be interrupted unnecessarily, causing clients to wait indefinitely for new data. (PR #236)
1.10.1 (2025-03-26)
[FIXED] The identification of Varbinary and Varchar columns in MySQL by inspecting the character set instead of relying solely on the binary flag, preventing incorrect type detection. (PR #234)
1.10.0 (2025-03-24)
[IMPROVED] Cached parameter queries and bucket data to reduce redundant computation during incremental sync. (PR #200)
[IMPROVED] MongoDB Storage: Replaced polling with a change stream for write checkpoint lookups to scale incremental updates on a large number of concurrent connections. (PR #230)
[IMPROVED] The HTTP liveness probe now returns HTTP 200 instead of 400 in API service mode, to indicate that it is alive when returning any response. (PR #232)
[FIXED] Postgres Storage: An issue where custom write checkpoints failed to persist). (PR #230)
1.9.0 (2025-03-17)
[IMPROVED] Optimized Postgres transaction replication by batching multiple operations into a single flush to the bucket storage. (PR #228)
[IMPROVED] Increased the MongoDB connection timeout to accommodate longer latencies when connecting to clusters in distant regions, reducing connection failures. (PR #231)
[FIXED] Resolved an issue in MySQL replication where errors were obscured by ROLLBACK failures, ensuring that the original error is now properly logged. (PR #227)
1.8.1 (2025-03-12)
[IMPROVED] Skipped replication of documents exceeding MongoDB's 16MB size limit to prevent replication errors. (PR #224)
[FIXED] Restored the use of the
slot_name_prefixconfiguration for Postgres replication slots. This change allows for better identification of PowerSync instances connected to specific Postgres instances by including the instance ID in the slot name. (PR #226)
1.8.0 (2025-03-06)
[IMPROVED] Included the local attachments queue table in the FlutterFlow schema export for the Dart SDK. This will simplify using the Flutter Attachments package with FlutterFlow. (PR #222)
[IMPROVED] Standardized internal usage of
OpIdasbigintto reduce unnecessary conversions betweenstringandbigintformats. (PR #209)[IMPROVED] Internal: Added configurable parameters for service limits, including max buckets, parameter query results, connections, and data fetch concurrency. (PR #218)
[FIXED] A race condition when stopping MySQL replication immediately after starting it. (PR #209)
1.7.2 (2025-03-04)
[IMPROVED] MongoDB initial replication performance by optimizing document reading from the source database. (PR #219)
1.7.1 (2025-02-27)
[IMPROVED] Upgraded
mongodbandbsonpackages to remove the need for certain workarounds. (PR #211)[IMPROVED] Unified compacting options across storage providers to enhance consistency. (PR #217)
[FIXED] Ensured current data remains available when restarting replication due to errors. (PR #216)
[FIXED] Improved handling of edge cases that could lead to truncation of synced tables. (PR #215)
[FIXED] Addressed issue where compacting might fail with an "unexpected PUT operation" error. (PR #217)
[FIXED] Added missing checkpoint completion log for empty sync iterations. (PR #214)
1.7.0 (2025-02-19)
[ADDED] Support for sync bucket priorities to ensure critical data sync first. Learn more here. (PR #192)
[IMPROVED] Upgraded to Node.js version 22.14.0.
[IMPROVED] Implemented minor optimizations to new checkpoint calculations. (PR #197)
[FIXED] Addressed signed integer overflow issue for int64 values from MongoDB. (PR #207)
v1.4.1
[FIXED] A race condition that sometimes caused a new write checkpoint to not be acknowledged on an existing connection (PR).
v1.4.0
[ADDED] Support for MongoDB resume tokens, enhancing replication reliability by allowing the system to resume change streams from the last known state after interruptions (PR).
[IMPROVED] Error handling for invalid sync rules, making it clearer when an error occurs. In self-hosted deployments, replication now exits upon a validation error, ensuring developers can immediately address configuration issues. This is configurable with a new
sync_rules.exit_on_erroroption. In PowerSync Cloud, errors are logged in instance logs and displayed in the dashboard for visibility. See this PR for details.[IMPROVED] Logging for initial replication progress for MongoDB connections, providing developers with visibility into data replication status during setup.
[IMPROVED] Upgraded TypeScript to 5.7 and set target Node.JS version 22, ES2024.
[FIXED]
->operator now returnsnullinstead ofundefinedfor missing JSON values, ensuring consistency in data handling and preventing potential query errors.
v1.3.12
[ADDED] Internal: Utilities for Postgres server and database identification.
v1.3.11
[ADDED] The ability to use the same Postgres server for the replication source and sync bucket storage. This is only supported on Postgres versions newer than 14.0.
[ADDED] The ability to skip creating empty sync checkpoints if no changes were present in a batch.
[FIXED] A bug where listening to active checkpoint notifications on an ended connection could cause a crash.
v1.3.10
[ADDED] Schema generator for FlutterFlow.
v1.3.9
[ADDED] Introduced standard error codes. Also see the PR.
[ADDED] A "test-connection" CLI command which performs the same connection validation as on PowerSync Cloud. PR.
[ADDED] Support IPv6 for the JWKS URI. PR.
[ADDED] Support for limiting IP ranges of outgoing connections. PR.
[IMPROVED] A clearer error message for "null" bucket definitions.
v1.3.8
[ADDED] Postgres support for sync bucket storage. See the Release Notes.
v1.3.7
[IMPROVED] Implemented a shared MongoDB dependency between modules. This should help avoid potential multiple versions of MongoDB being present in a project.
v1.3.6
[FIXED] MongoDB replication of
undefinedvalues causing missing documents.[FIXED] Excessive memory consumption during MySQL initial replication.
[IMPROVED] Added a heartbeat mechanism to the MySQL binlog listener replication connection to detect connection timeouts.
[IMPROVED] Moved the MongoDB sync bucket storage implementation to the MongoDB module.
[IMPROVED] Updated
ts-codecto version 1.3.0 for better decode error responses.
v1.3.5
[ADDED] ECDSA signing algorithm support for JWTs.
[ADDED]
iif(X,Y,Z)Sync Rules function, which returns the value Y if X is true, and Z otherwise.[FIXED] Timestamp replication issues for MySQL connections.
[FIXED] Resuming MySQL replication after a restart.
v1.3.4
[FIXED] An issue caused by incorrect bucket parameters grouping. See more details in this PR.
[FIXED] Replication slot recovery for Postgres instances. See more details in this PR.
[IMPROVED] Reduce noise in log output.
v1.3.3
[FIXED] Revert Postgres snapshot strategy.
v1.3.2
[IMPROVED] Use shorter timeout for testing MongoDB connections to ensure we get a proper error when failing to connect.
v1.3.1
[FIXED] "BSONObj size is invalid" error during replication.
v1.3.0
[ADDED] EdDSA signing algorithm support for JWTs as requested in this issue.
[IMPROVED] Optimized connection timeouts, and switched to fetching data in batches to reduce connection hanging risks for Postgres initial replication.
v1.2.0
[ADDED]
uuid_blobSync Rules function to convert a UUID string to bytes.[ADDED] Support resuming initial replication for Postgres, for cases where initial replication was interrupted. See more details in the PR.
[IMPROVED] For Supabase Auth, when a JWT secret is explicitly configured, disable using
current_setting('app.settings.jwt_secret').[IMPROVED] Implemented a workaround for a write checkpoint bug on Aurora Postgres.
[FIXED] Replication lag diagnostics for Postgres, which resulted in the error:
Unable to get replication lag Could not determine replication lag for slot [object Object]
v1.1.1
[FIXED] A regression for missing HTTP probes. Reported in issue.
v1.1.0
[ADDED] A "supabase_jwt_secret" config option to simplify static Supabase auth. Reference.
v1.0.0
[IMPROVED] Major refactor of the PowerSync Service to support modular replication.
[ADDED] Initial alpha support for MongoDB and MySQL source databases.
[ADDED]
json_eachfunction for parameter queries: Expand a JSON array or object from a request or token parameter into multiple parameter rows.[IMPROVED] Optionally include original types in generated client-side schemas as a comment.
v0.5.7
[IMPROVED] Postgres connection port restrictions. Connections are now supported on ports >= 1024.
v0.5.6
[ADDED] Support in Sync Rules for
substringandjson_keysfunctions.
v0.5.5
[IMPROVED] Sync Rules:
The Dashboard editor now warns when identifiers are automatically converted to lower-case.
The supported combinations of the IN operator have been expanded slightly - see the PR for examples.
[FIXED] An edge case with the checksum cache when compacting (when compacting resulted in a CLEAR operation that is later than the last checksum cache). See the PR for more information.
[FIXED] "JavaScript heap out of memory" error on startup.
v0.5.4
[IMPROVED] Update
TableV2toTablein the JavaScript/TypeScript schema generator (the two definitions have been merged).
v0.5.3
[FIXED] A rare race condition with WebSocket handling that could cause the route handler to "hang" indefinitely, after the underlying connection is closed.
v0.5.2
[FIXED] The error:
WebSocket is not open: readyState 2 (CLOSING)
v0.5.1
[ADDED]
client_idparameter to the WebSocketsync/streamendpoint logs.
v0.5.0
[ADDED]
client_idparameter and User-Agent headers. This forms part of the work to support custom write checkpoints.The
client_idparameter specifically affects write checkpoints (limits write checkpoints to a specific client, rather than just an user).It also makes it easier to notice issues such as multiple concurrent connections for the same client.
User-Agent headers allow us to identify which client is used.
[IMPROVED] Logging for troubleshooting:
Log on sync lock when reaching concurrency limit.
Log the current count of connected WebSocket connections.
v0.4.4
[ADDED] Support for TableV2 / TypeScript schema generator.
v0.4.3
[INTERNAL] Removed unused development routes.
v0.4.2
[INTERNAL] Added utility functions for registering routes.
v0.4.1
[FIXED] Missing route error logs.
Updated dependencies:
[FIXED] Concurrent connection limiting for WebSockets, to resolve the error " [429] Maximum active concurrent connections limit has been reached".
v0.4.0
[ADDED] Support for
request.parameters(),request.jwt()andrequest.user_id(). Documentation will we published soon.[ADDED] Warn on potentially dangerous queries using client parameters.
v0.3.0
[IMPROVED] Removed dependency for restricted packages, allowing this repository to be used without any NPM credentials.
[FIXED] A replication issue with REPLICA IDENTITY FULL.
v0.2.2
[FIXED] Teardown command not terminating after some errors. Also adds better logging to the teardown job.
[FIXED] Date parsing in replication for dates further back than 100 AD.
v0.2.1
[IMPROVED] Use a LRU cache for checksum computations, improving performance and reducing MongoDB database load. Learn more here.
[IMPROVED] Return zero checksums to the client instead of omitting these, to help with debugging sync issues.
v0.2.0
[ADDED] Support for client parameters. This functionality is gradually being added to client SDKs.
v0.1.3
[FIXED] Some performance issues, detailed here.
[IMPROVED] Logging for initial snapshot replication.
v0.1.2
[FIXED] Missing authentication errors for WebSocket sync stream requests.
v0.1.1
[IMPROVED] Updated
lru-cachedependency minimum version to prevent downstream consumers of package using a broken version.
v0.1.0
[ADDED] The ability to capture anonymous usage metrics (learn more here).
v0.0.2
Initial public release.