IdentityIQ 8.x to 9.0 upgrade
Cohash upgrades IdentityIQ 8.x estates to 9.0. You go to 8.5 first, through each GA release, and SailPoint's iiq-precheck runs on an 8.5 copy. We fix the javax references it finds in rules, plugins, connectors and forms, then move you to a Jakarta EE 10 application server. Upgrade and rollback are both rehearsed on production data before the real window.
- 01Reach 8.5
- 02Inventory and pre-check
- 03Fix custom code
- 04Build the new application server
- 05Rehearse upgrade and rollback
- 06Production upgrade
The story
Told without the client's name or anything that could identify them.
A bank's identity team ran IdentityIQ 8.3 on WebLogic, with years of BeanShell rules and several plugins written before anyone on the team joined. SailPoint's announcement of IdentityIQ 9.0 on Jakarta EE 10, and its decision to drop WebLogic, turned a routine upgrade into an application server change as well. We took a copy through each GA release to 8.5, ran iiq-precheck on it and sorted every javax finding into renames, developer fixes and code nobody used. The fixed code now runs on a Jakarta EE 10 application server in rehearsal, the upgrade and rollback are timed on a production clone, and the production date waits only on SailPoint's GA.
why it was urgentSailPoint announced IdentityIQ 9.0 on 6 October 2026 and still hasn't given a GA date. The release moves from Java EE 8 to Jakarta EE 10 and runs on Tomcat 10.1 and 11, JBoss EAP 8 and WebSphere Liberty. WebLogic is dropped. Staying on Tomcat 9 doesn't help, because Apache ends support for 9.0.x on 31 March 2027.
- openIdentityIQ runs on Tomcat 9 or WebLogic, and one of those has to change.
- recurringThe estate is on 8.3 or 8.4, two GA releases short of where the pre-check runs.
- blockedThere are hundreds of BeanShell rules and several plugins, and all of them predate everyone on the current team.
- openLeadership wants a firm upgrade date, but SailPoint hasn't announced GA yet.
The estate, before and after
Before: IdentityIQ 8.x on WebLogic with javax custom code
IdentityIQ governed joiners, movers and leavers on an 8.x release hosted on WebLogic. Custom rules and plugins used javax imports that only fail when a rule fires.
Read the diagram as text
- HR system → IdentityIQ 8.3: joiner · mover · leaver
- Active Directory → IdentityIQ 8.3: aggregation
- Custom rules and plugins → IdentityIQ 8.3: fails at runtime
- IdentityIQ 8.3 → Oracle WebLogic: hosted on
- IdentityIQ 8.3 → IdentityIQ database: reads and writes
- IdentityIQ 8.3 → Entra ID: provision
- IdentityIQ 8.3 → Salesforce: provision
- IdentityIQ 8.3 → CyberArk: safe membership
After: IdentityIQ 9.0 on a Jakarta EE 10 application server
Nothing changed for sources and targets. They connect to IdentityIQ 9.0, which now runs on a Jakarta EE 10 application server, with custom code fixed, executed and rebuilt and a rehearsed rollback for the database upgrade.
Read the diagram as text
- HR system → IdentityIQ 9.0: joiner · mover · leaver
- Active Directory → IdentityIQ 9.0: aggregation
- Jakarta-ready rules and plugins → IdentityIQ 9.0: tested deploy
- IdentityIQ 9.0 → Jakarta EE 10 app server: hosted on
- IdentityIQ 9.0 → IdentityIQ database: schema upgrade
- IdentityIQ 9.0 → Entra ID: provision
- IdentityIQ 9.0 → Salesforce: provision
- IdentityIQ 9.0 → CyberArk: safe membership
How we run it, phase by phase.
6 phases take you from SailPoint IdentityIQ 8.x to SailPoint IdentityIQ 9.0. Each one ends with something you can check before the next starts. As you scroll, the blocks show the estate moving across.
- phase 01
Reach 8.5
Record the version, patch level and e-fixes, then upgrade a copy through each GA release to 8.5 at its latest patch, with IQService upgraded at each hop and regression tests run after every step.
- phase 02
Inventory and pre-check
Rules, workflows, task definitions and applications are exported with export -clean, plugins and custom JARs are listed, and iiq-precheck runs on the 8.5 rehearsal copy to find every javax reference.
- phase 03
Fix custom code
Some findings are mechanical renames. Some need a developer, and some sit in code nobody uses, which can simply go. Rebuild plugins and connectors against Jakarta EE 10, and execute every changed BeanShell rule as well as scanning it.
- phase 04
Build the new application server
Pick Tomcat 10.1 or 11, JBoss EAP 8 or WebSphere Liberty and build the rehearsal environment on it. WebLogic shops have extra work, moving JNDI data sources, session settings and load balancer health checks.
- phase 05
Rehearse upgrade and rollback
Run the full upgrade at least twice on a production clone. Time the schema upgrade, and run go or no-go tests for aggregation, provisioning, requests and certifications. Rehearse the rollback restore as well.
- phase 06
Production upgrade
When SailPoint publishes GA and the platform matrix, book the production window and follow the rehearsed runbook, with a fixed no-go time and scheduled tasks paused.
What the client got
What changed for the client once the work was done. Described, not scored: we don't publish client figures.
- result 01
A tested route through every GA release to 8.5
We went hop by hop to 8.5 on its latest patch, upgrading IQService each time and recording the regression tests. So the pre-check and 9.0 start from a base we know.
- result 02
Every javax reference has a decision
We turned the iiq-precheck output into a single work list, split into renames, developer fixes and deletions. Every changed BeanShell rule was executed as well as scanned, and plugins were rebuilt against Jakarta EE 10.
- result 03
WebLogic is replaced
There's a working Jakarta EE 10 application server build, with the JNDI data sources, session settings and load balancer health checks moved over from WebLogic.
- result 04
Upgrade and rollback are rehearsed
The full upgrade ran at least twice on a production clone, with the schema upgrade timed and go or no-go tests for aggregation, provisioning, requests and certifications. The restore was rehearsed too.
- result 05
The production window has a runbook and a no-go time
Scheduled tasks are paused during the window. If we have to roll back, provisioning is logged so an aggregation can bring the restored 8.5 database back in line.
Risks we plan for
-
BeanShell fails at runtime
Rules are interpreted when they fire, so a missed import breaks a leaver workflow at night rather than at deploy. Every touched rule gets an execution test.
-
Unknowns before GA
SailPoint hasn't published the GA date, minimum source version or full platform matrix. The plan fixes what can be fixed now and leaves the production date open.
-
WebLogic exit
Moving off WebLogic is a project of its own, with data sources, clustering and load balancing to rebuild. It's planned separately from the code fixes.
-
Provisioning during rollback
If you roll back, anything provisioned after the upgrade started won't be in the restored 8.5 database. Pause provisioning or log it, so an aggregation can reconcile afterwards.
Where AI helps, and where it needs guardrails
SailPoint's Agentic Fabric, generally available since 4 August 2026, governs AI agents alongside people. For the upgrade itself, coding assistants handle the javax to jakarta renames that iiq-precheck reports pretty well. We still treat their output as a draft, running each rule and rebuilding and testing each plugin. If assistants get IdentityIQ data after the upgrade, give them a read-only MCP tool with its own scoped account.
forward deployed engineers →What you're left with
We write these for your setup, and they're working documents. Your team should be able to keep things running from them long after we've gone.
- tests01
Upgrade route to 8.5 with test results per hop
yours to keep - document02
iiq-precheck work list sorted into renames, developer fixes and deletions
yours to keep - document03
Jakarta EE 10 application server build
yours to keep - tests04
Rehearsal timings and go or no-go test results
yours to keep - runbook05
Production runbook with tested rollback
yours to keep
Platforms and services on this move
Services involved
Certified engineers, wherever you need them.
Some clients want a project team, some want a couple of engineers on theirs. Either works. Onsite, nearshore or offshore, with handovers across time zones that keep things moving.
Onsite
Engineers at your sites in the US
Nearshore
Overlapping hours with US teams
Offshore
Overnight progress on your backlog
All time zones
Coverage handed over across time zones
01When is IdentityIQ 9.0 generally available?
As of 20 October 2026, there's no GA date from SailPoint. That doesn't stop you doing the 8.5 upgrade, the pre-check and most of the code fixes now. The production date waits for GA.
02Do we have to go through 8.5?
iiq-precheck only runs on 8.5 and 9.0, which makes 8.5 the practical place to stage. Field guidance says to install each intermediate GA release on the way there, and we confirm that route with SailPoint Support for your environment.
03Should we move to Identity Security Cloud instead?
Depends how much custom code you own, and whether you must stay self-hosted. The pre-check report counts what has to change in both cases, which makes the estimates comparable.
04How long does the code work take?
Count the custom rules, plugins, connectors and XHTML forms and you have most of the answer. Small estates can be done in days. Several plugins and custom connectors push it to weeks, before regression testing.
Often on the same roadmap
On-premises Active Directory to cloud-first Microsoft Entra ID
We shrink on-premises Active Directory one application at a time, moving groups, users and app authentication to Microsoft Entra ID as each app is ready.
read the case studyAD FS federation to Entra ID authentication
Converting federated domains from AD FS to Entra ID cloud authentication, moving relying parties app by app and retiring the AD FS farm.
read the case studyAuth0 Rules and Hooks to Actions before end of life
Rewriting Auth0 Rules and Hooks as Actions before their 18 November 2026 end of life, with token claims compared before and after each change.
read the case studyad73bc5b - 01SailPoint blog: IdentityIQ 9.0 (6 Oct 2026)sailpoint.com ↗
- 02SailPoint Developer Community: Announcing the IdentityIQ 9.0 Upgrade Pre-Check Utilitydeveloper.sailpoint.com ↗
- 03SailPoint Developer Community: IIQ 8.3 to 8.5 upgrade and the 9.0 pre-checkdeveloper.sailpoint.com ↗
- 04SailPoint Compass: IdentityIQ will drop support for Oracle WebLogic (29 Jun 2026)community.sailpoint.com ↗
- 05Apache Tomcat: 9.0.x end of support (31 Mar 2027)tomcat.apache.org ↗
- 06ITBrief: SailPoint launches Agentic Fabric (4 Aug 2026)itbrief.co.uk ↗
Planning this move?
A 30-minute working session with a senior engineer. No slides.
- The platform and the version you're on
- Where you need to get to, and by when
- What's custom: rules, plugins, integrations
- Any audit finding or deadline driving it