0.86.0
What has changed?
Log fields are now grouped by entity
Log fields are now grouped under the entity they belong to, so each thing has one name. A flow run id isflowRun.id (it used to appear as runId, flowRunId, or a bare id), and other ids follow the same shape (flow.id, project.id, job.id, …). Errors are logged under error. This only changes how logs look — nothing about the API, database, or flows changes.
Google SSO is configured via environment variables only
“Sign in with Google” can no longer be enabled from the SSO page in the admin panel — that setting has been removed. It is now controlled solely by theAP_GOOGLE_CLIENT_ID and AP_GOOGLE_CLIENT_SECRET environment variables. The button only appears when both are set (and the platform’s Google auth toggle is enabled).
Pieces are now self-contained bundles
Each piece is now built into a single self-contained bundle — its own code, the Activepieces framework, and its third-party dependencies are inlined into one artifact, so the engine provisions a piece by downloading one file instead of installing a dependency tree at runtime. As part of this, the shared libraries (@activepieces/shared, @activepieces/pieces-framework, @activepieces/pieces-common, @activepieces/core-*) are no longer published to npm, and pieces import only from @activepieces/pieces-framework (which re-exports the foundation symbols that used to come from @activepieces/shared). Built-in pieces are unaffected — this only matters for custom pieces.
AP_PRE_WARM_CACHE removed
The AP_PRE_WARM_CACHE environment variable no longer exists. It used to make a worker install pieces into its cache on startup. The worker is now its own sandbox and fills its cache lazily on first use, so the flag has no effect and setting it does nothing. Cache warmth now comes from running long-lived worker replicas rather than an up-front install step.
The up-front install is no longer needed because piece installs are now fast: each piece is a self-contained bundle fetched as a single file. If you have S3 enabled, official piece bundles are cached to your S3 bucket on first use and served from there via signed links — so when your bucket is co-located in the same region as your workers, subsequent installs are a low-latency download from a nearby object store instead of a registry round-trip.
Do you need to take action?
- Only if you set up Google SSO from the admin panel. Move your Google OAuth2 credentials into the
AP_GOOGLE_CLIENT_IDandAP_GOOGLE_CLIENT_SECRETenvironment variables. - Only if you build dashboards or alerts on Activepieces logs. Update them to the new grouped names, e.g.
runId→flowRun.idanderr→error. - Only if you maintain custom pieces (in a fork or built outside the repo). Migrate each one to the bundle model — run
npm run cli -- pieces migrate <piece-name>(or--all), or follow the migration guide. Pieces that still import@activepieces/sharedor depend on the now-unpublished libraries will fail to build. - Only if your deployment sets
AP_PRE_WARM_CACHE. Remove it from your environment — it is no longer read. Nothing else is required.
0.85.4
What has changed?
Observability: OpenTelemetry replaced with evlog
Logging moved from pino + OpenTelemetry to evlog. Logs are now one rich event per request/job instead of many small lines, so the JSON shape changed. Traces and metrics are no longer exported. OpenTelemetry tracing produced a huge volume of low-value spans — far more data (and cost) than it was worth — so we dropped it in favour of these wide events, which carry the same context in one place.AP_OTEL_ENABLED=true now sends logs only, over OTLP.
New optional env vars: AP_LOG_SAMPLE_RATE_INFO (percent of info logs to keep, default 100) and AP_LOG_KEEP_SLOW_MS (always keep requests slower than this, default 2000). Drain settings (AP_AXIOM_*, AP_BETTERSTACK_*, AP_LOKI_*, AP_HYPERDX_TOKEN) are unchanged.
Action: only if you ingest Activepieces telemetry — update log dashboards to the new shape, and move any trace- or metric-based monitoring to logs.
Referencing step outputs
Previously if you had a step called step_1 you would had to reference it “step_1[‘the_property_you_want’]” but now you must reference it as “step_1[‘output’][‘the_property_you_want’]”, there is already a migration that will take care of this for you, but if you must abide by this new syntax if you are writing/editing step references manually not through the builder. You can now also reference the step error via “step_1[‘error’]”, these changes come with the error handling feature. Also step names there were shown on hover in the builder are now removed, you can right click the step and copy its reference instead.Enforcing same version of docker image on both worker and app servers
Previously if your worker was on a different version of your app server, the worker would work fine most of the time, but because some changes we do will require both of them to be on the same version we added this safeguard.0.84.0
What has changed?
Flow Run Log Size Enforcement
This is an important behavior change in how flow run logs are stored and capped, but no action is required — the existing default (AP_MAX_FLOW_RUN_LOG_SIZE_MB=50) is preserved.
- Large step outputs are now offloaded to object storage instead of sitting inline in worker memory, controlled by the new
AP_FLOW_RUN_LOG_SLICE_THRESHOLD_KBenv var (default32). - Large step input values are replaced with a
(truncated, original size <N>)placeholder in the log via the newAP_FLOW_RUN_LOG_INPUT_TRUNCATE_THRESHOLD_KBenv var (default2). The step still receives the full value at runtime. - Runs whose combined step inputs and outputs exceed
AP_MAX_FLOW_RUN_LOG_SIZE_MBnow terminate with the newLOG_SIZE_EXCEEDEDstatus instead of silently trimming inputs. Offloaded outputs still count their original size against the cap. - See Limits → Files & flow run logs for the full behavior, environment variables, and defaults.
- Embedding now requires setting allowed embed origins, which means only the domains listed in the field can embed the app (wildcards are supported). There is also a new env variable
AP_ALLOWED_EMBED_ORIGINSfor setting pre-allowed origins, and a new endpoint for adding these origins — check docs. - “Sign in with Google” can no longer be enabled from the SSO page in the admin panel — that setting has been removed. It is now controlled solely by the
AP_GOOGLE_CLIENT_IDandAP_GOOGLE_CLIENT_SECRETenvironment variables. The button only appears when both are set (and the platform’s Google auth toggle is enabled).
Do you need to take action?
- Embedding — if you are embedding your self-hosted activepieces somewhere make sure it’s on the allow list
- Only if you set up Google SSO from the admin panel. Move your Google OAuth2 credentials into the
AP_GOOGLE_CLIENT_IDandAP_GOOGLE_CLIENT_SECRETenvironment variables.
0.83.0
What has changed?
When creating a project now, the platform owner email doesn’t automatically get added to the alert recievers list of the project, you can manually assign it in the UI/API, when creating a project.0.82.0
What has changed?
Piece Versions Are Now Pinned
- Piece versions are no longer stored with wildcards (
~1.2.0,^1.2.0). All piece steps now use exact versions (e.g.1.2.0). - A migration automatically strips wildcard prefixes from all existing flow versions on upgrade.
- The
LOCK_AND_PUBLISHoperation no longer resolves piece versions at publish time — steps run with the exact version stored in the flow. - A new version switcher UI in the builder lets users upgrade or downgrade piece versions manually.
REST API
ADD_ACTION,UPDATE_ACTION, andUPDATE_TRIGGERnow strip wildcard prefixes (~,^) frompieceVersionbefore saving. If you were relying on wildcard versions to auto-resolve on publish, your steps will now be pinned to the base version (e.g.~1.2.0becomes1.2.0).LOCK_AND_PUBLISHno longer modifiespieceVersionon any step. The version in the draft is the version that will run.- A new endpoint
GET /v1/pieces/:name/versionsis available to list all versions of a piece, useful for building custom version selection.
Concurrent Jobs Env Var Renamed
AP_MAX_CONCURRENT_JOBS_PER_PROJECT→AP_DEFAULT_CONCURRENT_JOBS_LIMIT. Default drops from100to5.
Outbound HTTP is SSRF-filtered
- Server-side HTTP (OAuth, Vault, Conjur, event destinations, on-call pager, MCP validator) now blocks private, loopback, and cloud-metadata IPs. Reach internal hosts by adding their IP/CIDR to
AP_SSRF_ALLOW_LIST.
Do you need to take action?
- Pinned piece versions — if you create or update flows via the REST API with wildcard versions (
~or^), switch to exact versions; wildcards are silently stripped. If your publish flow relied onLOCK_AND_PUBLISHresolving wildcards, set the exact version on each step before publishing. UseGET /v1/pieces/:name/versionsto list available versions. - Concurrent jobs — rename
AP_MAX_CONCURRENT_JOBS_PER_PROJECTtoAP_DEFAULT_CONCURRENT_JOBS_LIMIT. To keep the old cap, setAP_DEFAULT_CONCURRENT_JOBS_LIMIT=100. - SSRF filter — if you self-host Vault, Conjur, an OAuth2 token endpoint, or any internal webhook on a private IP, set
AP_SSRF_ALLOW_LIST(comma-separated IPs or CIDRs, e.g.10.0.5.12,192.168.10.0/24) before upgrading.
0.80.0
What has changed?
Infrastructure
- A new environment variable
AP_MAX_WEBHOOK_PAYLOAD_SIZE_MBhas been introduced to control the maximum allowed webhook payload size. The default is25MB. Webhooks exceeding this limit will be rejected with a413 Request Too Longresponse. - Nginx has been removed from the Docker image. Fastify now serves both the API and the React frontend directly. All API routes are now under the
/apiprefix natively. If you were using/v1/healthas a health check endpoint (e.g. in Kubernetes probes or load balancer checks), update it to/api/v1/health. - Secret managers has been refactored, the version in 0.79.0 no longer is supported, it was not used by anyone but it’s worth to mention to upgrade to 0.80.0 before considering using the feature
API
- A new
UPDATE_SAMPLE_DATA_INFOflow operation has been introduced to handle sample data updates independently. UPDATE_ACTIONandUPDATE_TRIGGERno longer accept or apply changes tosampleDatain step settings. AnysampleDatafields sent in these requests will be ignored and the existing sample data will be preserved.- A new required
lastUpdatedDatefield has been added to all actions and triggers, tracked automatically by the server. It is not accepted inUPDATE_ACTIONorUPDATE_TRIGGERrequests.
Do you need to take action?
- If you want to restrict webhook payload sizes below the new
25MB default, setAP_MAX_WEBHOOK_PAYLOAD_SIZE_MBto your desired limit. - If you are using the API to update sample data on steps via
UPDATE_ACTIONorUPDATE_TRIGGER, switch to the newUPDATE_SAMPLE_DATA_INFOoperation instead. - If you have custom health checks pointing to
/v1/health, update them to/api/v1/health.
0.78.1
What has changed?
- The Platform
Operatorrole can now edit all projects.
Do you need to take action?
- Only if you want to restrict Operators from having editor access to every project. Review your Operator permissions as needed.
0.78.0
What has changed?
- The
usageCountfield has been removed from both the template API responses and the database—it’s no longer available. - The Todos feature is now deprecated and will not be supported going forward.
Do you need to take action?
- If you’re using the Todos feature, update your flows to use the new approvals channels available from the approvals tab in the piece selector.
0.77.0
What has changed?
- For Embed Plan users: the “Use a Template” dialog no longer appears when clicking the “New Flow” button.
- The
/flow-templatesAPI endpoints have been removed and replaced by/templates. - Log size configuration has changed:
AP_MAX_FILE_SIZE_MBno longer controls flow run logs. UseAP_MAX_FLOW_RUN_LOG_SIZE_MBinstead.
Do you need to take action?
- If you are on the embed plan, update your implementation to redirect users to the
/templatespage. - Review the new endpoints documentation: Templates API Schema.
- If you use a custom value for
AP_MAX_FILE_SIZE_MB, be sure to also setAP_MAX_FLOW_RUN_LOG_SIZE_MBaccordingly.
0.75.0
What has changed?
- When you navigate to a flow run inside the builder the url will change to /runs, this is something embedding customers might need to consider in case they have a route guard that only allows users to navigate to /flows.
- In development mode, loading piece translations are now off by default. Set
AP_LOAD_TRANSLATIONS_FOR_DEV_PIECES=trueto enable.
Do you need to take action?
- Check your embedding navigation handler and see if it would be blocking the user from seeing the runs inside the builder or not.
- If you want to load translations for pieces in development mode, set
AP_LOAD_TRANSLATIONS_FOR_DEV_PIECES=truein your environment variables.
0.74.0
What has changed?
- The default embedded database for development and lightweight deployments has changed from SQLite3 to PGLite (embedded PostgreSQL).
- The environment variable
AP_DB_TYPE=SQLITE3is now deprecated and replaced withAP_DB_TYPE=PGLITE. - Existing SQLite databases will be automatically migrated to PGLite on first startup.
- Templates are broken in this version. A migration issue changed template IDs, breaking API endpoints. This will be fixed in the next patch release.
- The
aiCreditsfeature per project has been removed. In the next version, it will be replaced by integration with the AI Gateway.
Do you need to take action?
- If you are using
AP_DB_TYPE=SQLITE3: Update your configuration to useAP_DB_TYPE=PGLITEinstead. - If you are using templates: Wait for the next patch release to fix the template IDs.
0.73.0
What has changed?
- Major change to MCP: Read the announcement.
- If you have SMTP configured in the platform admin, it’s no longer supported—you need to use AP_SMTP_ environment variables.
Do you need to take action?
- If you are currently using MCP, review the linked announcement for important migration details and upgrade guidance.
0.71.0
What has changed?
- In separate workers setup, now they have access to Redis.
AP_EXECUTION_MODEmodeSANDBOXEDis now deprecated and replaced withSANDBOX_PROCESS- Code Copilot has been deprecated. It will be reintroduced in a different, more powerful form in the future.
When is action necessary?
- If you have separate workers setup, you should make sure that workers have access to Redis.
- If you are using
AP_EXECUTION_MODEmodeSANDBOXED, you should replace it withSANDBOX_PROCESS
0.70.0
What has changed?
AP_QUEUE_MODEis now deprecated and replaced withAP_REDIS_TYPE- If you are using Sentinel Redis, you should add
AP_REDIS_TYPEtoSENTINEL
When is action necessary?
- If you are using
AP_QUEUE_MODE, you should replace it withAP_REDIS_TYPE - If you are using Sentinel Redis, you should add
AP_REDIS_TYPEtoSENTINEL
0.69.0
What has changed?
AP_FLOW_WORKER_CONCURRENCYandAP_SCHEDULED_WORKER_CONCURRENCYare now deprecated all jobs have single queue and replaced withAP_WORKER_CONCURRENCY
When is action necessary?
- If you are using
AP_FLOW_WORKER_CONCURRENCYorAP_SCHEDULED_WORKER_CONCURRENCY, you should replace them withAP_WORKER_CONCURRENCY
0.66.0
What has changed?
- If you use embedding the embedding SDK, please upgrade to version 0.6.0,
embedding.dashboard.hideSidebarused to hide the navbar above the flows table in the dashboard now it relies onembedding.dashboard.hideFlowsPageNavbar
0.64.0
What has changed?
- MCP management is removed from the embedding SDK.
0.63.0
What has changed?
- Replicate provider’s text models have been removed.
When is action necessary?
- If you are using one of Replicate’s text models, you should replace it with another model from another provider.
0.46.0
What has changed?
- The UI for “Array of Properties” inputs in the pieces has been updated, particularly affecting the “Dynamic Value” toggle functionality.
When is action necessary?
- No action is required for this change.
- Your published flows will continue to work without interruption.
- When editing existing flows that use the “Dynamic Value” toggle on “Array of Properties” inputs (such as the “files” parameter in the “Extract Structured Data” action of the “Utility AI” piece), the end user will need to remap the values again.
- For details on the new UI implementation, refer to this announcement.
0.38.6
What has changed?
- Workers no longer rely on the
AP_FLOW_WORKER_CONCURRENCYandAP_SCHEDULED_WORKER_CONCURRENCYenvironment variables. These values are now retrieved from the app server.
When is action necessary?
- If
AP_CONTAINER_TYPEis set toWORKERon the worker machine, andAP_SCHEDULED_WORKER_CONCURRENCYorAP_FLOW_WORKER_CONCURRENCYare set to zero on the app server, workers will stop processing the queues. To fix this, check the Separate Worker from App documentation and set theAP_CONTAINER_TYPEto fetch the necessary values from the app server. If no container type is set on the worker machine, this is not a breaking change.
0.35.1
What has changed?
- The ‘name’ attribute has been renamed to ‘externalId’ in the
AppConnectionentity. - The ‘displayName’ attribute has been added to the
AppConnectionentity.
When is action necessary?
- If you are using the connections API, you should update the
nameattribute toexternalIdand add thedisplayNameattribute.
0.35.0
What has changed?
- All branches are now converted to routers, and downgrade is not supported.
0.33.0
What has changed?
- Files from actions or triggers are now stored in the database / S3 to support retries from certain steps, and the size of files from actions is now subject to the limit of
AP_MAX_FILE_SIZE_MB. - Files in triggers were previously passed as base64 encoded strings; now they are passed as file paths in the database / S3. Paused flows that have triggers from version 0.29.0 or earlier will no longer work.
When is action necessary?
- If you are dealing with large files in the actions, consider increasing the
AP_MAX_FILE_SIZE_MBto a higher value, and make sure the storage system (database/S3) has enough capacity for the files.
0.30.0
What has changed?
AP_SANDBOX_RUN_TIME_SECONDSis now deprecated and replaced withAP_FLOW_TIMEOUT_SECONDSAP_CODE_SANDBOX_TYPEis now deprecated and replaced with new mode inAP_EXECUTION_MODE
When is action necessary?
- If you are using
AP_CODE_SANDBOX_TYPEtoV8_ISOLATE, you should switch toAP_EXECUTION_MODEtoSANDBOX_CODE_ONLY - If you are using
AP_SANDBOX_RUN_TIME_SECONDSto set the sandbox run time limit, you should switch toAP_FLOW_TIMEOUT_SECONDS
0.28.0
What has changed?
- Project Members:
- The
EXTERNAL_CUSTOMERrole has been deprecated and replaced with theOPERATORrole. Please check the permissions page for more details. - All pending invitations will be removed.
- The User Invitation entity has been introduced to send invitations. You can still use the Project Member API to add roles for the user, but it requires the user to exist. If you want to send an email, use the User Invitation, and later a record in the project member will be created after the user accepts and registers an account.
- The
- Authentication:
- The
SIGN_UP_ENABLEDenvironment variable, which allowed multiple users to sign up for different platforms/projects, has been removed. It has been replaced with inviting users to the same platform/project. All old users should continue to work normally.
- The
When is action necessary?
- Project Members:
EXTERNAL_CUSTOMER role, you should start using the OPERATOR role instead.
- Authentication: