How to plan the midPoint 4.11 upgrade from 4.10
midPoint 4.11 can be reached directly only from 4.10, and only when your deployment already runs the latest 4.10 maintenance release. If you run any other version, you must first move to a release that supports the step to 4.11, so the first planning task is to confirm your exact version against the release notes before you schedule anything. The timing makes this worth doing now. The midPoint releases page lists support for 4.10 as ending on 26 November 2027, and it lists 4.11 as a feature release planned for 21 October 2026. Confirm both dates on the releases page when you build your plan, because planned release dates can move.
Start by deciding what the upgrade is for and which target you need. Some teams move to 4.11 as soon as it is available, while others wait for later maintenance builds to reduce early risk. Either choice should be written down with its reasons, because it sets the order of every later step. Next, record the current build, the Java runtime, the PostgreSQL version, and the deployment method for each environment, including production, test and any disaster recovery copy. midPoint recommends Java 21 for 4.10 and Java 25 for 4.11 and later, so a runtime change may be a separate workstream with its own owner and approval. Treat it as a dependency, not as a detail to settle at the end.
Next, turn the release notes into a workstream list that your team can assign and track. The main areas are database schema changes, bundled connector version changes that require updated resource connector references, container image changes that affect existing volume permissions, and removed OIDC settings in the authentication configuration. Each area needs an owner, a test case and a clear answer to the question of whether your environment is affected. Ask the people who maintain your connectors and identity sources to list every resource they depend on, since those lists are the usual source of surprises during a midPoint upgrade.
Plan the test and rollback path before the production change window is fixed. Use a non-production copy of the repository and configuration, and confirm that you can restore the database and the midPoint home directory to their pre-upgrade state. Decide who approves the go or no-go decision, who performs the change, and who checks reconciliation and provisioning results afterward. If your organization requires a formal change record or audit evidence for the change, agree on the format before the work starts. Finally, confirm what Evolveum support covers for your situation. Evolveum offers Product Support subscriptions for product bugs, and its support page lists no prices, so ask for the written scope and terms before you rely on them during the upgrade.
What changes in the midPoint 4.11 upgrade
This table compares each change in midPoint 4.11 with its effect on an existing 4.10 deployment and the action to take before upgrading. Read the rows in order, because the upgrade path and database changes come before container and configuration work. The main takeaway is that schema, connector references, volume permissions and OIDC settings each need checks before any production cutover.
| Change | Impact | Action needed |
|---|---|---|
| Upgrade path | Direct upgrade to 4.11 is supported only from 4.10, and only from its latest maintenance version. | Confirm your current version and move to the latest 4.10 maintenance release first. Older versions need an intermediate step. |
| Database schema changes | 4.11 adds new ApplicationType and ConnectorDevelopmentType tables to the repository schema. | Back up the repository and run the schema upgrade in a test copy first. Confirm the migration steps in the 4.11 release notes. |
| Bundled connector versions | Some bundled connector version numbers change, so existing resource connector references may no longer match. | List every resource that uses a bundled connector and update its connector reference. Confirm the changed versions in the release notes. |
| Non-root container image | The 4.11.0 images run as user midpoint with UID 1000, so existing Docker or Kubernetes volumes may not be writable. | Set securityContext.fsGroup to 1000 or chown the volume in an init container. Test volume permissions before rollout. |
| Removed OIDC attributes | Deprecated OidcResourceServerAuthenticationModuleType attributes such as issuerUri and jwkSetUri are removed. | Map each removed attribute to its jwt or opaqueToken token definition. Confirm exact mappings in the 4.11 release notes. |
| PostgreSQL 18 support | 4.11 adds support for PostgreSQL 18 as the native repository database. | Check the supported PostgreSQL versions in the system requirements before choosing a database target for the upgrade. |
| Java runtime | midPoint recommends Java 25 for 4.11, and Java 21 is supported. | Decide which Java version the test and production hosts or images will use. Confirm the runtime in the container image you deploy. |
Why the midPoint 4.11 upgrade runs directly only from 4.10
The direct path to midPoint 4.11 starts only from 4.10, and only when the installation is on the latest 4.10 maintenance version. The 4.11 release notes state that other versions must first move to a release that supports the step to 4.11. For planning, this means the first decision is not which features to adopt but which version you are on today. Check the exact running build, not the version your team last deployed, because a 4.10 installation that has missed maintenance releases does not qualify for the direct step until it is brought up to the latest 4.10 maintenance version.
If you run 4.9 or earlier, the path is longer. midPoint 4.9 support ends on 18 October 2026, and the 4.11 feature release is planned for 21 October 2026 according to the midPoint releases page. That timing leaves little room for a 4.9 installation to wait for 4.11 before moving. midPoint 4.8 (Curie) is a long-term support release supported until 17 October 2028, so a team that wants stability over feature releases may stay on that line instead. Whether that fits depends on your support obligations and on how much change your identity team can absorb, and the sibling topic on the midPoint 4.8 LTS upgrade path covers that choice and the stepwise route through 4.9 and 4.10.
Before you schedule the step, confirm three things with your own environment. First, record the current 4.10 build number from the running system and compare it with the latest 4.10 maintenance release on the midPoint releases page. Second, confirm that your database, Java runtime and container base are compatible with 4.11 as documented in the system requirements, since 4.11 recommends Java 25 while 4.10 uses Java 21. Third, decide whether you will test the step in a non-production copy that is restored from a recent backup, so the direct upgrade is rehearsed against your own connectors and data.
If your installation is not on the latest 4.10 maintenance version, the work to reach it is a prerequisite project, not a footnote. Plan it as its own change with its own testing, rollback point and sign-off. Teams that combine a maintenance catch-up with the 4.11 schema changes, bundled connector updates and container permission fixes in one window make failures harder to diagnose, because it is unclear which change caused a problem. Keep the steps separate where you can, and document the build you started from so that any later audit or support request shows exactly which path was taken.
Backups, inventory and a test environment for the midPoint 4.11 upgrade
Four preparation areas should be finished before the 4.10 to 4.11 upgrade window opens. Together they let you reverse the upgrade, find every connector and customization that the new release touches, and rehearse the change on a copy of production. Each card lists what you must produce, so the upgrade plan rests on documented evidence and can be reviewed by your change board before any work starts.
Verified PostgreSQL and configuration backup
Take a backup of the PostgreSQL repository and the midPoint configuration directory, including the files that hold encryption keys and keystore material. Then restore that backup into a separate database and start a midPoint 4.10 instance against it. Confirm that the instance starts, that users, resources and tasks appear as expected, and that the restored copy can support a rollback decision. Record who performed the restore, when it ran, and which backup set was used. A successful backup job alone does not prove that the upgrade can be reversed.
Resource and connector version inventory
List every resource definition with the system it manages, the connector bundle it uses and the connector version it references. Compare each reference with the bundled connector versions in the 4.11 release notes, because some version numbers change and resource references must be updated before the new release starts. Mark resources that depend on custom or community connectors, since those need a separate compatibility check. Keep this inventory in version control so that later changes stay visible.
Customization and deployment file inventory
Record every customization that lives outside the standard product: custom object templates, scripts and expressions, initial objects, schema extensions and the deployment files that run midPoint. Deployment files include Docker Compose files, Helm values or Kubernetes manifests, plus volume mounts and init containers. For each item, name an owner and the test that proves it still works on 4.11. Items without an owner tend to be skipped during testing, so treat that gap as a blocking finding.
Production-matched test environment
Build a test environment that matches production in topology, including node count, the sticky HTTP load balancer, the shared database and cache invalidation between nodes. Match the Java runtime, starting from the Java 21 that midPoint recommends for 4.10, then test the Java 25 target that midPoint recommends for 4.11. Match the PostgreSQL version as well, and confirm 4.11 support for PostgreSQL 18 before choosing a target version. Rehearse the non-root container permission fix in this environment, so that volume ownership problems surface before the production window.
Making existing volumes writable for the non-root 4.11 container image
The midPoint 4.11.0 container images run as the non-root user midpoint with UID 1000. A volume created under an earlier image may be owned by a different user or group, so the new process may be unable to write to it. The failure often appears only after startup, when midPoint tries to write logs, state or configuration files. Before you deploy 4.11.0, inventory every volume mounted into a midPoint container, record its current owner and group, and confirm which mounts the midPoint process writes to. Volumes that hold only read-only configuration may need no change.
In Kubernetes, the first option is setting securityContext.fsGroup to 1000 in the pod spec. The kubelet then applies group ownership to the volume contents and grants group read and write access, so the midpoint user can write through its supplemental group. The change is declarative and leaves existing files in place. Whether and how fsGroup is applied depends on the volume type and storage driver, and some drivers apply it only at mount time or skip it for certain volume types. Confirm the behavior with your storage class before relying on it, and ask your platform team whether pod security admission or a policy engine permits fsGroup on this workload.
The second option is an init container that runs as root, changes ownership of the mounted paths to 1000:1000, and exits before the midPoint container starts. It works on Docker and on Kubernetes without depending on fsGroup support, and it lets you limit the change to the directories midPoint writes to. The trade-offs are that it needs a root-capable image and a security context that many clusters restrict, a recursive chown on a large volume adds startup time on each restart unless you guard it, and ownership changes persist for any other consumer of the same volume. Check that no other process still expects the old owner before running it.
Test both options on a copy of the production volume before changing live data. Restore a recent backup or snapshot to a staging volume, deploy the 4.11.0 image against it, and confirm that the pod starts, logs are written, and a login and a simple reconciliation complete. Use the 4.11 release notes at the Evolveum documentation site, together with observed writes in your own deployment, to confirm which paths the image writes to, then limit permission changes to those paths. Keep the original volume untouched so you can roll back the image and the ownership together if the test fails.
Upgrade sequence for midPoint 4.11, with checks and rollback points
This sequence moves a midPoint deployment from the latest 4.10 maintenance release to 4.11 in the order the upgrade requires. Each step closes with a check, and the backup taken before the schema change is the rollback point that restores the earlier state.
Confirm the latest 4.10 maintenance release
Your platform team confirms that the running midPoint build is the latest 4.10 maintenance release. The 4.11 release notes support direct upgrades only from 4.10, and only from the latest 4.10 maintenance version, so any other starting point needs an intermediate upgrade first. Compare the running build with the midPoint releases page and the 4.11 release notes. Check: the version and build are recorded in the change ticket and approved by the platform owner. Rollback: nothing has changed yet, so no rollback is needed. If the deployment is on an older version, bring it to the latest 4.10 maintenance release in test and repeat this check.
Check Java and PostgreSQL against requirements
Compare the Java runtime and the PostgreSQL server with the midPoint system requirements for 4.11. Evolveum recommends Java 25 for 4.11 and later and lists Java 21 as supported. PostgreSQL is the native repository database, ideally on its own database server. Confirm that the PostgreSQL version is one the 4.11 requirements support, noting that 4.11 adds support for PostgreSQL 18. Check: the runtime and database versions are written into the change record and match the requirements page on the day of the change. Rollback: if a runtime or image was changed in test, restore the previous image. Otherwise no rollback is needed.
Take and verify backups
Back up the midPoint repository database, the midPoint home directory and configuration files, and any volumes the containers use. Verify each backup by restoring it into an isolated environment and confirming that the database opens and midPoint starts against it. Check: the restore test passes, and the backup identifier, timestamp and checksum are recorded in the change record. This verified backup is the rollback point taken before the schema change. Restoring it returns midPoint and its database to the earlier state, so keep it until 4.11 has run stably in production for a period the platform owner agrees.
Update resource connector references
Update each resource definition that refers to a connector so that it points to the connector version bundled with 4.11. The release changes some bundled connector version numbers, so references left at older values can fail after the upgrade. Export the resource objects, make the changes in version control, and review the diff against the originals. Check: each resource reports the bundled connector in the test environment, and a test connection succeeds for every target system. Rollback: restore the exported resource objects from version control or from the step 3 backup. The schema has not changed at this stage, so restoring these objects returns the earlier state.
Apply volume ownership fixes
The 4.11.0 container images run as the non-root user midpoint with UID 1000, so existing volumes must be writable by that user. In Kubernetes, set securityContext.fsGroup to 1000 on the pod. In Docker or other setups, change ownership with a chown step in an init container or a one-time command. Apply the change to test volumes first and start the container to confirm it can write to its home and log paths. Check: the container starts without permission errors in its logs, and the expected files show UID 1000 as owner. Rollback: reapply the previous manifests and restore volume ownership from the step 3 backup if files were changed.
Run the schema change in test and review tables
Run the 4.11 database schema change against a restored copy of the production database in the test environment. The change adds tables for ApplicationType and ConnectorDevelopmentType. Review those new tables, then compare row counts and sample records in existing tables before and after the change. Check: the migration completes without errors, the new tables exist, and a sample of existing objects reads correctly in midPoint. Keep the migration log with the change record. Rollback: the rollback point before the schema change is the verified backup from step 3. Restoring it returns the earlier state, so production must not start the change until that backup has been verified.
Deploy 4.11 to test and run functional checks
Deploy 4.11 to the test environment on the upgraded schema and run functional checks for the workflows your organization depends on. Cover reconciliation, connector calls to each target system, approvals, access certification campaigns and scheduled tasks. Review the authentication configuration for the removed OIDC attributes issuerUri and jwkSetUri, replacing them with jwt or opaqueToken token definitions. Check: each check has a recorded pass result, the logs show no errors, and multi-node test clusters share one central database. Rollback: redeploy the 4.10 images and restore the test database from the step 3 backup.
Repeat the upgrade in production during the agreed window
Repeat the steps in production inside the change window agreed with business owners and the platform team. Confirm that the production backup from step 3 is verified immediately before the schema change, then run the change and start the 4.11 nodes. Run the same functional checks as in test and watch logs and scheduled task results. Check: all checks pass, scheduled tasks complete, and the change record shows the final version and the migration log. Rollback: if a check fails before the production schema change, stop and redeploy 4.10. If it fails after the schema change, restore the step 3 backup, which is the rollback point that restores the earlier state.
How to test and roll back a midPoint 4.11 upgrade
Test the 4.11 upgrade on a restored copy of production data before any production cutover, and settle the rollback approach before the change window opens. The reason is structural. midPoint 4.11 adds database schema changes, including new tables for ApplicationType and ConnectorDevelopmentType, so a rollback after cutover depends on restoring the database backup taken before the upgrade. Starting the 4.10 image again against a migrated database is a step you should only plan on after Evolveum confirms the supported downgrade behavior for this version pair in writing. Record that answer in the change plan with the date it was given.
Login and identity flows. Start with authentication. Test administrator login to the midPoint user interface, ordinary user login, and login through any external SSO service the deployment uses. Because midPoint 4.11 removes deprecated OidcResourceServerAuthenticationModuleType attributes such as issuerUri and jwkSetUri in favour of jwt and opaqueToken token definitions, check that every authentication module in your configuration still loads and that tokens are accepted. Also confirm that a break-glass administrator account works, since a broken SSO configuration can lock out the people who would fix it.
Reconciliation and provisioning. Bundled connector version numbers changed in 4.11, so update each resource's connector reference and then test each connected target system separately. Run a reconciliation on every resource and compare the changes it proposes with the 4.10 baseline from the same data. Then provision a dedicated test account through midPoint and confirm create, modify, disable and delete on each target. Keep these results as evidence, because they are the basis for the go or no-go decision.
Approvals, certification and scheduled tasks. Create an access request that goes through an approval, and confirm that work items reach the right approvers and close correctly. Start a test certification campaign and check that reviewers see their items and that decisions are recorded. Confirm that tasks scheduled under Quartz fire on their expected schedule after the upgrade and that no task runs twice. If the deployment is clustered, test cache behavior across nodes. midPoint invalidates caches between nodes over HTTPS, so confirm that a change made on one node is visible on another, and ask Evolveum how mixed-version nodes behave before you run them side by side.
Containers and the rollback decision. For non-root 4.11.0 container images, the midpoint user with UID 1000 must be able to write to existing volumes. Set securityContext.fsGroup to 1000, or use a chown in an init container, and test that the application starts and writes logs and files in staging. Keep the database major version change for PostgreSQL 18 out of the same window unless you have tested that combination separately. Before cutover, write down the rollback trigger, the person who makes the call, and the criteria for each test. Verify the pre-upgrade backup with a restore test so that the rollback path works when it is needed.
What makes a midPoint 4.11 upgrade take longer
This table lists the drivers that change how much work a midPoint 4.10 to 4.11 upgrade involves, why each one matters and how to reduce it. Read each row against your own deployment, since connector counts, custom logic and node numbers differ widely between organizations. The main takeaway is that connectors, custom logic and volume permissions usually cause unplanned work, so inventory them before scheduling the change.
| Driver | Why it matters | How to reduce it |
|---|---|---|
| Number and type of connectors | Bundled connector version numbers change in 4.11, so every resource connector reference needs updating. Community or experimental connectors may need a separate check. | List each resource and its connector status. Confirm each connector version against the 4.11 release notes before the change window. |
| Custom object templates, scripts and role models | Logic written for 4.10 must be tested against the 4.11 build, and a large number of custom items adds test cases. | Inventory every template, script and role model. Run them against sample data in a test instance and record the results. |
| Size of the repository and schema change time | 4.11 adds database tables such as ApplicationType and ConnectorDevelopmentType, so migration time grows with database size. | Measure the schema change on a copy of production data. Confirm backups and free disk space before starting. |
| Number of nodes behind the load balancer | Multi-node deployments share one database, so node order, sticky sessions and cache invalidation shape the sequence. | Ask Evolveum whether a rolling sequence is supported for your topology. Confirm how the load balancer drains each node. |
| Kubernetes volumes that need permission changes | 4.11 container images run as non-root user UID 1000, so existing volumes may not be writable. | Set securityContext.fsGroup to 1000 or chown the volume in an init container. Test the change on a copy of the volume first. |
| Availability of a test environment | Without a staging copy of the database and connectors, schema and connector problems surface in production. | Build a staging environment with a sanitized copy of production data and the same connector versions. |
| Approvals and access certification retesting | Approval workflows and certification campaigns depend on objects and connectors the upgrade changes, so they need retesting. | Re-run representative approval and certification cases in staging. Keep the results as evidence for your audit file. |
Questions buyers ask before a midPoint 4.11 upgrade
How much does a midPoint 4.11 upgrade cost?
Cost follows from the written scope, which is agreed before work starts. DeployOpen does not publish a price list, so the quote is based on what you ask us to do. The fixed part usually covers the upgrade plan, staged runs in non-production environments, the schema and connector reference changes, the container and volume changes, and the cutover runbook. The variable part depends on the number of connectors and resources, the amount of custom code and roles, the number of environments, and whether you must step through 4.10 first. Ask the quote to separate one-time work from any recurring support or retainer, to mark optional items, and to state which costs you pay directly to Evolveum for any subscription.
How long does a midPoint 4.10 to 4.11 upgrade take?
Duration depends on how close your system already is to the latest 4.10 maintenance release, how many connectors and resources need updating, how much custom code exists, and how quickly test environments and approvals are available. No duration figure is supplied here, so ask for a timeline with each phase listed in the written scope. A system already on the latest 4.10 maintenance release avoids an extra stepping upgrade. Each additional step adds a test cycle. Also plan for a verified database backup and restore test, the change window for production, and time after the first run to confirm provisioning, reconciliation and certification campaigns behave as expected. Ask which phases depend on your approvals or access.
What does our team need to provide for a midPoint upgrade?
The work needs access, time and named people. DeployOpen needs access to the midPoint hosts or container platform, the PostgreSQL database, the configuration repository and the non-production environments, all under your change control. You need a change window for each non-production run and for the production cutover, plus one person who can make the rollback decision. Test data should resemble production identity data, with representative users, roles and resources, and personal data must be handled under your policies. Each connector owner, such as the owners of directory, HR and cloud identity sources, must confirm test accounts and agree how reads and writes will be checked. Ask the quote to list each dependency and the person who owns it.
Can our internal team upgrade midPoint to 4.11 alone?
Yes, an internal team can perform the upgrade alone if it has midPoint administration experience, PostgreSQL and container operations skills, and time for repeated test cycles. The 4.11 release notes describe the core work: database schema changes including new tables, updated bundled connector versions that require resource references to change, non-root container images that need volume permissions corrected, and removed OIDC settings. Teams without recent upgrade experience often find connector and role regression testing takes the most effort. A partner adds capacity and a written plan with fixed scope. Decide which parts stay in-house, such as connector owner validation, and write that split into the scope so responsibilities are clear from the start.
Does an Evolveum Product Support subscription change the upgrade work?
A Product Support subscription from Evolveum is a separate agreement for resolving product bugs, offered with an 8x5 next-business-day or 24x7 SLA. It does not plan, carry out or test your upgrade, so the implementation scope still has to be agreed. It can change your risk during testing: if you find a product defect, the subscription provides a route to a fix or workaround that the upgrade work can rely on. Platform Subscriptions are a different product, adding feature development and roadmap influence. Evolveum's page lists no prices, so request subscription terms from Evolveum directly and confirm with DeployOpen how any subscription interacts with the upgrade scope before signing either contract.
What changes if our midPoint is on version 4.9 or older?
Systems older than 4.10 cannot move directly to 4.11. Direct upgrades to 4.11 are supported only from 4.10, and the system must already run the latest 4.10 maintenance version. A 4.9 system therefore first moves to a release that supports the step to 4.11, which means reaching 4.10 before the 4.11 upgrade. midPoint 4.9 support ends 18 October 2026, and 4.11 is planned for 21 October 2026, so the sequence should be planned early. Each intermediate upgrade repeats the schema, connector and container checks and adds a test cycle. Confirm the full stepping path, the number of intermediate upgrades and whether backups are verified between steps before accepting a scope.
Does DeployOpen issue a compliance attestation for the upgrade?
No. DeployOpen does not issue audit reports, attestations or certifications. It can prepare systems, configuration records, access review evidence and change documentation that your auditors or certification body examine, and it documents the upgrade steps, validation results and rollback plan. Independent auditors and certification bodies issue any assurance opinion. Before the work starts, ask your assessor which records they expect for an upgrade change. Then ask the quote to list the evidence artifacts that will be delivered, such as test results, change logs, configuration exports and sign-off records, so you can judge whether they meet your assessor's requirements.
How DeployOpen scopes and delivers the midPoint 4.11 upgrade
DeployOpen scopes the midPoint 4.10 to 4.11 upgrade in writing before work starts, since most engagements are fixed-scope. We plan the path from your current version, the database schema and connector changes, container volume permissions and removed OIDC settings, then build and verify each in infrastructure you control. Ongoing support is available as a retainer after the upgrade.
How we scope
- Confirm your current midPoint version and whether it is the latest 4.10 maintenance release.
- Agree which bundled connectors, resource references and custom configuration fall within the written scope.
- Record the database, Java runtime and container platform in use, and check them against the 4.11 requirements.
How we build
- Step through any intermediate release first if you are not on the latest 4.10 maintenance version.
- Update bundled connector version references and make volumes writable for UID 1000 with fsGroup or an init container.
- Replace deprecated OIDC resource server attributes such as issuerUri and jwkSetUri with jwt or opaqueToken definitions.
How we hand over
- Apply the 4.11 database schema changes in a rehearsal copy first, then record the results for your change record.
- Document the upgrade steps, schema changes, connector references and rollback points used in your environment.
- Hand over runbooks for your operators, with verification checks confirming midPoint starts and connectors respond.
How we support
- Offer ongoing support, upgrades and testing as a retainer after the 4.11 handover.
- Ask Evolveum which subscription fits your needs, since Product Support and Platform Subscriptions differ in scope.
- Plan later upgrades using the midPoint releases page, which lists 4.11 as planned for 21 October 2026.

