Skip to main content
An update needs a compatible package version and matching browser assets. FLEX includes prebuilt CSS and JavaScript, so a normal application update does not require rebuilding the package with Node.js.

Choose your update path

Update within v4

1

Read the release notes

Check Changelog for requirements, configuration changes and migrations. Keep the application’s Composer constraint on the intended v4 release line.
2

Resolve the new package version

Test and commit the resulting lockfile through your normal release process. Production deployments generally install that reviewed lockfile with composer install, rather than resolve a different dependency set on each node.
3

Publish matching assets

If publication is not already handled by the application’s Composer hook:
FLEX publishes its resources after successful Filament asset publication. Normal page requests and unrelated commands do not republish package files.
4

Finish your application's deployment

Apply planned migrations, rebuild the caches your application uses and restart relevant long-running processes. Then verify the release and a representative create/edit workflow.

Set up automatic publication once

Composer runs scripts from your application’s composer.json, not from installed dependency packages. If filament:upgrade is already present, it includes Filament asset publication. If neither publication command is configured, merge this entry into the application’s existing post-autoload-dump list:
composer.json
Retain your other script entries. Composer’s script documentation explains application-owned hooks.
composer install --no-scripts and composer update --no-scripts skip these hooks. Include explicit publication when your deployment uses either option.

Preserve your settings

Your published configuration and translations remain application-owned. Compare new settings with the release notes and add only the overrides you need. Do not routinely overwrite those files with vendor:publish --force. After changing published configuration, rebuild configuration cache through your normal Laravel deployment. Keep component configuration and model storage contracts aligned when a release changes a value format.

Plan database changes

Individual fields use application attributes; they do not require managed field-group storage. However, FLEX registers package migrations, and your application’s migration step includes pending package migrations even if the field-group resource is disabled. Review pending migrations and the release notes before running the normal production migration step:
Composer does not itself migrate the database or silently rewrite saved custom-component values. Use an explicitly planned value migration when a storage contract changes. See database setup and extension value migrations.

Restart only the processes you use

Use the appropriate command for the processes your application actually runs. A worker executing old PHP must not continue processing new jobs indefinitely after deployment. Ensure queue workers and web nodes can reach the same configured media storage.

Keep PHP and asset releases together

Deploy the reviewed code, lockfile and matching published assets as one release. In a multi-node deployment, each active node needs a consistent package and asset set. Retain older immutable asset releases while open browser documents or application nodes still reference them. Pruning is explicit. An open page can retain already evaluated JavaScript; a reload may be needed after a runtime change. Do not add cache-busting timestamps to URLs or delete old releases indiscriminately. For release stores and delivery policies, use extension deployment and asset delivery.

Verify the deployed release

Check for missing or mismatched files, then open an actual form. Create a record, reopen it, edit it and try a relevant validation failure. If you use queued media, verify that its conversion jobs finish too.
Use the public root for the release you are deploying. Verify that the web server or CDN serves that same published release.
If the release changes the pinned runtime, install it with php artisan fff:whisper:install. Ordinary playback does not require transcription. See AudioField runtime setup.

Prepare a rollback

Keep the previous application release and its matching assets available. Restoring code alone is not enough if its browser files have been removed. Database migrations and changed saved-value contracts need their own rollback or forward-recovery plan. Restoring the package version does not automatically reverse database or media changes.

Changelog

Review the changes for your installed version.

Troubleshooting

Diagnose publication, configuration and processing failures.
Last modified on October 16, 2026