SecurityIdentity

Upgrading to SailPoint IdentityIQ 9.0: what breaks and what to fix first

IdentityIQ 9.0 keeps the identity governance you know and rebuilds the platform under it, so expect most upgrade work to land in your server and your custom code. What changed from 8.4 and 8.5, what to do now, and what to do if the upgrade goes wrong.

Cohash Security Practice October 2026 updated October 2026 20 min read 8 chapters 3-question check
part 2 of 38 · Platform releases, explained from scratch
IDENTITYIQ 8.5 Java EE, javax.* Tomcat 9.x on Tomcatsites WebLogic, Solaris OK Start/end dates IDENTITYIQ 9.0 Jakarta EE 10,jakarta.* Jakarta EE 10servers WebLogic, Solarisdropped Start/end times,zones

the ideaSame IdentityIQ on top, a new Java platform underneath.

after reading, you can
  • Explain what 9.0 changes from 8.4 and 8.5, and what SailPoint still hasn't published.
  • Spot the plugins, rules and JARs the javax-to-jakarta move will touch.
  • Plan your 8.x to 9.0 upgrade around the two things most likely to break: your server and your custom code.

SailPoint has announced IdentityIQ 9.0, the next major version of the identity software big companies run on their own servers. If you're on 8.x, don't start with the new features. Check which server it runs on and how much custom code your team has written, because that's where the upgrade work sits.

in plain wordsPlatform release: start planning

IdentityIQ runs who-gets-access-to-what, and 9.0 swaps out the engine underneath it

IdentityIQ is SailPoint's identity governance software, the version a company installs and runs on its own servers. Someone joins, and it creates their accounts. They move teams, and it changes what they can open. They leave, and it takes the access away. Managers use it to approve requests and, on a schedule, to confirm who should keep what. Version 9.0 still does all of that. What changes is underneath: the Java platform the product is built on moves to a newer standard, so the server it runs on and any custom code your team wrote have to move with it. SailPoint also adds access with exact start and end times, and tooling that checks your setup before you upgrade.

think of it like this

Think of a building's badge system. The badge office, the rules about who opens which doors and the records auditors check all stay. 9.0 replaces the wiring standard in the walls. Door controllers that can't take the new wiring (WebLogic, Solaris) come out, and any gadgets your own team wired in (rules, plugins) have to be rewired before the system is switched back on.

who should care
  • Companies running IdentityIQ 8.x
  • Teams on Oracle WebLogic or Solaris
  • Identity and IAM platform teams
  • Developers of rules and plugins
  • Auditors and compliance leads
chapter 01

Why it matters to you

IdentityIQ grants and removes access across the whole company, so when an upgrade breaks it, people notice within a day. New starters wait for accounts, leavers keep theirs, and access reviews stall halfway through an audit cycle. With 9.0 we'd expect most of the effort to go on the server and the custom code. The new features are the easy part.

Waiting has a cost as well. Tomcat 9.0.x support ends on March 31, 2027, and IdentityIQ 8.5 can't move to Tomcat 10 or 11. If yours runs on Tomcat, you can rely on a 9.1.x branch SailPoint hasn't said it will support for 8.x, or move 8.5 to another app server it supports, such as JBoss EAP or WebSphere Liberty. Otherwise you'll need to be on 9.0 by then.

Oct 6, 2026IdentityIQ 9.0 announced at SailPoint Navigate 2026
3pillars SailPoint names: governance, a rebuilt foundation and a refreshed experience
2platforms dropped in 9.0: Oracle WebLogic (app server) and Oracle Solaris (server OS)
Mar 31, 2027Apache ends support for Tomcat 9.0.x. Tomcat 9 is the last Java EE major version

SailPoint's press release talks about "the release of IdentityIQ 9.0", but there's no confirmed general-availability date. A March 2026 SailPoint community post gave a tentative target of Q4 2026, and as of October 22, 2026 there were no public release notes or 9.0 supported-platforms list. On October 7 an Expert Ambassador on SailPoint's developer forum wrote that no confirmed release date had been published, and on October 13 a forum member running IdentityIQ 8.5 called 9.0 "still not yet released". Most of what follows comes from SailPoint's own public pages. Where we lean on community forum posts, we say so. We'll update this post when the release notes go public.

SailPoint aims 9.0 at customers with extensive data residency requirements, strict regulatory constraints or deeply customized programs. If that's you, you kept identity governance on premises on purpose, and the gains land differently depending on your job.

  • Security leaders: exact start and end times on roles and entitlements. Privileged access ends at the time you set.
  • Platform teams: current app servers, before Tomcat 9.0.x support ends in 2027, so you can plan to get off Tomcat 9 in time.
  • Reviewers: their review settings stick between sessions, and search finds everything the first time. Campaigns go faster when nobody rebuilds their view.
  • Business administrators: SailPoint redesigned application setup for the people who now actually do that work.
  • Owners and auditors: the people who know the data review ownership and descriptions themselves. Auditors get records someone actually checked.
  • Developers: one standard way to configure custom forms and scripts. Carrying that code into the next upgrade gets easier.

Who has the most work to do: teams on WebLogic or Solaris, which face a platform move as well as an upgrade, and teams with years of custom plugins and rules, where the javax-to-jakarta change concentrates. For them, the scan and a rehearsal matter more than the feature list.

what changesWhat moves when you go from 8.x to 9.0The product you use stays the same. The platform underneath changes, and everything built on that platform has to follow.
  1. 01 Today: 8.x on Java EE

    Your 8.4 or 8.5 sits on Tomcat 9, JBoss EAP, WebSphere Liberty or WebLogic. Any rules or plugins your team wrote may use javax.* packages.

  2. 02 9.0 moves to Jakarta EE 10

    Jakarta EE is Java EE under a new name, and its packages are now called jakarta.*. The app server has to fully support Jakarta EE 10.

  3. 03 Some platforms drop out

    WebLogic and Solaris aren't supported for the 9.0 server. Teams on either one change server or operating system as part of the upgrade.

  4. 04 Custom code gets rewritten

    Plugins, JARs and rules that import classes like javax.servlet move to jakarta.*. SailPoint's pre-check is meant to find most of them; check bundled libraries too.

  5. 05 New features switch on

    Once you're live, put temporary access on exact times, with time zones. Reviewers keep their settings, and owners check their own records.

chapter 02

What changed in IdentityIQ 9.0

We've only put in what SailPoint has said publicly about 9.0. Read the Jakarta EEdefinitionJava EE's successor. Since Jakarta EE 9, packages are jakarta.*, not javax.*. 10 card first, since that's the one that decides how much custom code you rewrite.

What SailPoint has announced for 9.0

changedJakarta EE 10 foundation

Built on Jakarta EE 10, so the app server has to fully support Jakarta EE 10 too. Your custom code is where this one bites.

newTime-based access with start and end times

Set exact start and end times, with time zones, on roles and entitlements. A contractor's access can stop at 5 p.m. their time.

enhancedAccess reviews remember your view

Reviewer preferences now persist across sessions.

enhancedMore accurate search

SailPoint says search is more forgiving and returns complete results the first time. We'd check that in the rehearsal before promising it to reviewers.

changedApplication setup for business admins

App configuration redesigned for business administrators. Fewer setup jobs have to wait for a specialist.

newSelf-service ownership and description review

Business owners review ownership and entitlement descriptions themselves. Central admins stop carrying that work alone.

changedStandardized configuration for custom logic

Custom forms, business logic and interface scripts follow one standard configuration approach. That's less one-off code to carry into the next upgrade.

newAutomated upgrade tool

Scans your environment and does much of the manual upgrade work for you. Run it early and you'll know where you stand before you pick a date.

removedOracle WebLogic support

Dropped, because current WebLogic versions aren't compatible with 9.0's Jakarta EE. WebLogic shops move servers first.

removedOracle Solaris as the server platform

The 9.0 server isn't supported on Solaris. The Solaris connector is unaffected.

changedApplication Definition UI on Angular 18

Application Definition UI moves from ExtJS (XHTML) to Angular 18. Custom application forms that point to XHTML need work.

newJakarta EE 10 pre-check utility

Flags Java and BeanShell that clash with Jakarta 10, plus XHTML formPaths. Run it early, so the list arrives well before cutover.

From javax to jakarta. IdentityIQ 8.x is built on Java EE, the standard Java plumbing for servlets and web services. Java EE moved to the Eclipse Foundation and became Jakarta EE. In December 2020 Jakarta EE 9 renamed its specification packages from javax.* to jakarta.*, which is why so much old code breaks on new servers. Tomcat split the same way: Tomcat 9 is the last one for Java EE, 10.1 is built for Jakarta EE 10 and 11 for Jakarta EE 11.

Back in 2025 SailPoint said Tomcat 10.1 and 11 had to wait until IdentityIQ became a Jakarta EE application. That couldn't happen in 8.5, so it went on the list for the next big version. Then SailPoint named it: 9.0 is built on Jakarta EE 10, and your app servers have to support Jakarta EE 10 too.

So look at your own code first. Plugins, custom JARs and rules that import Jakarta EE classes under javax.*, such as javax.servlet, need changing. Packages that belong to core Java itself keep their javax names. It's the same dependency that keeps IdentityIQ 8.5 off Tomcat 10 and 11, which a community Ambassador spelled out on SailPoint's developer forum in August 2026.

Time-based access, down to the time of day. You've had temporary access for a while. 8.4 calls them sunrise and sunset dates, 8.5 calls them start and end dates, and you put them on a role or on one person's access to a role or entitlement. Out-of-the-box workflows act on them, and a separate setting sends a notice before access expires. What SailPoint says 9.0 adds is exact start and end times, with time zone support, across roles and entitlements. It's pitched at privileged access on critical systems, where access should exist only while it's needed.

Less friction for reviewers and admins. Reviewers keep their preferences between sessions, and SailPoint says search returns complete results the first time. Application setup was redesigned for business administrators. Upkeep of governance data moves too. Business owners now review ownership records and entitlement descriptions on a schedule, so central administrators aren't left maintaining them. Worth showing each group in your rehearsal environment before go-live.

An upgrade tool, because upgrades are where on-premises programs stall. SailPoint's press release calls the manual work the main risk that stalls on-premises upgrades, and 9.0 comes with tooling that scans the environment, finds what has to change and handles most of it automatically. SailPoint has also described a pre-check utility for the Jakarta EE 10 move. It finds custom Java classes that conflict with Jakarta 10, rules, forms and workflows whose BeanShell scripts conflict, and custom applications whose formPaths point to XHTML files. Public sources don't say whether the pre-check and the upgrade tooling are the same tool, so ask SailPoint.

chapter 03

IdentityIQ 9.0 against 8.4 and 8.5

We kept the table to what's publicly documented for 8.4, 8.5 and 9.0. If a cell says a detail isn't public, SailPoint hasn't published it outside the customer login. That doesn't mean the feature is missing.

table8.4, 8.5 and 9.0 side by side, from what SailPoint has made public. Where a detail sits behind a login, we say so.
AreaIdentityIQ 8.4IdentityIQ 8.5IdentityIQ 9.0
ReleaseSeptember 2023July 2025Announced October 6, 2026. Tentative target Q4 2026; no confirmed GA date
Java platformJava EE (javax.* packages)Java EE (javax.* packages)Jakarta EE 10 (jakarta.* packages)
Apache TomcatTomcat 9 line (Tomcat 10+ needs Jakarta EE)Tomcat 9 line (Tomcat 10+ needs Jakarta EE)Tomcat 10.1 and other Jakarta EE 10 servers; Tomcat 11 not confirmed
Oracle WebLogicSupportedSupportedNot supported
Oracle Solaris (server)Platform list needs loginSupportedNot supported; Solaris connector unaffected
JBoss EAP, WebSphere LibertySupportedSupportedCompatible versions targeted
Temporary accessStart and end (sunrise and sunset) dates on roles and on user accessStart and end dates on roles and on user accessPrecise start and end times with time zones, for roles and entitlements
Headline additionsAccess History, data extraction, read-only debug pagesAccess-request approvals in Microsoft Teams; the 8.5 docs also cover GenAI entitlement descriptions and an attribute visibility selectorAngular 18 application UI, refreshed reviews and search, owner self-review
Upgrade helpStandard upgradeCommunity reports the 9.0 pre-check (iiq-precheck) runs hereAutomated upgrade tool; SailPoint describes a Jakarta EE 10 pre-check
Supported-platforms listCustomer loginCustomer loginNot public (as of Oct 22, 2026)

Two notes on the table. The WebLogic and Solaris rows for 8.5 come from SailPoint's own notices, which say support ends with 9.0 and send you to the 8.5 supported-platforms list for today's support. The 8.4 temporary access cell comes from the 8.4 docs. They call start and end dates sunrise and sunset dates.

Support timeline. SailPoint's support policy says each software version is supported for a fixed period after release, and that a version at End of Support is no longer eligible for software support. The per-version table lives on SailPoint's Compass community. The link in the public policy no longer resolves, and the supported-platforms matrix asks for a customer sign-in, so we can't state end dates for 8.3, 8.4 or 8.5 here. For scale, SailPoint's upgrade notes record that IdentityIQ 8.1 reached limited support on February 21, 2023 and dropped support on February 21, 2024. Ask your SailPoint Customer Success Manager for the dates that apply to your version.

How IdentityIQ got to 9.0

  1. Dec 8, 2020
    Jakarta EE 9 renames javax.* to jakarta.*

    The namespace change IdentityIQ 9.0 adopts with Jakarta EE 10. Code using the old javax EE package names has to change.

  2. Sep 2023
    IdentityIQ 8.4 released

    Adds Access History and data extraction. You can also give someone read-only rights to the debug pages.

  3. Apr 7, 2025
    SailPoint puts Jakarta EE on the roadmap

    Not in 8.5; planned for the next major version to support Tomcat 10.1 and 11.

  4. Jul 2025
    IdentityIQ 8.5 adds approvals in Microsoft Teams
  5. Jan 2026
    SailPoint previews 9.0 plans

    A SailPoint webinar walks through 8.4 P2 and 8.5, then what's planned for 9.0.

  6. Mar 2, 2026
    SailPoint names Jakarta EE 10 for 9.0

    Tentative release target: Q4 2026, subject to change. No firm date has followed yet.

  7. Jun 2026
    Solaris and WebLogic support to end in 9.0

    Solaris notice on June 25, WebLogic notice on June 29, 2026, both on SailPoint's community site. Anyone running either one got a second project that week.

  8. Oct 6, 2026
    IdentityIQ 9.0 announced at Navigate

    There was still no confirmed GA date on October 22, 2026, and no public release notes or platform list. Plans still rest on earlier SailPoint posts.

  9. Mar 31, 2027
    Apache Tomcat 9.0.x support ends

    9.1.x releases run to December 31, 2030. Whether 8.x will support 9.1 is still unconfirmed, so don't count on it.

chapter 04

Architecture: what moves underneath

From the outside, an IdentityIQ 9.0 deployment looks like an 8.5 one: people use the web interface, the application talks to its database and to your applications through connectors, and IQServicedefinitionIdentityIQ's Windows service, for anything only Win32 APIs can reach., the Windows service IdentityIQ uses for Win32 APIs, still has a job to do. The change is in the middle tier: the application serverdefinitionThe server a Java web app runs in, like Tomcat, JBoss EAP or Liberty. WebLogic shops have to pick a new one for 9.0., the Java packages the code uses, and every piece of your custom code that touches them. The diagrams are simplified. The 9.0 side shows the changes SailPoint has announced; we've drawn the database and IQService as they are in 8.5 because SailPoint hasn't published 9.0 requirements for them.

before

Before: IdentityIQ 8.5

8.5 is Java EE: Tomcat 9, JBoss EAP, Liberty or WebLogic, and javax.* code.

Before: IdentityIQ 8.5 8.5 is Java EE: Tomcat 9, JBoss EAP, Liberty or WebLogic, and javax.* code. 01 · PEOPLE 02 · APPLICATION SERVER 03 · DATA AND TARGETS requests and reviews configure hosts extends identity data Windows targets aggregate, provision Users and reviewers browser and Teams approvals Administrators ExtJS application definition Tomcat 9, JBoss, Liberty,WebLogic running a Java EE (javax)app IdentityIQ 8.5 web app javax.* packages Rules, workflows, plugins may import javax.* classes IdentityIQ database IQService Windows service for Win32APIs Connected applications through connectors © Cohash · cohash.com
01 · PEOPLE02 · APPLICATION SERVER03 · DATA AND TARGETS Users and reviewers: browser and Teams approvals Users andreviewers browser and Teamsapprovals Administrators: ExtJS application definition Administrators ExtJS applicationdefinition Tomcat 9, JBoss, Liberty, WebLogic: running a Java EE (javax) app Tomcat 9,JBoss,Liberty,… running a JavaEE (javax) app IdentityIQ 8.5 web app: javax.* packages IdentityIQ8.5 web app javax.*packages Rules, workflows, plugins: may import javax.* classes Rules,workflows,plugins may importjavax.* classes IdentityIQ database IdentityIQdatabase IQService: Windows service for Win32 APIs IQService Windows servicefor Win32 APIs Connected applications: through connectors Connectedapplications throughconnectors requests and reviews configure identity data Windows targets aggregate, provision © Cohash · cohash.com
after

After: IdentityIQ 9.0

9.0 is Jakarta EE 10 on servers like Tomcat 10.1. Your custom code moves to jakarta.* along with it.

After: IdentityIQ 9.0 9.0 is Jakarta EE 10 on servers like Tomcat 10.1. Your custom code moves to jakarta.* along with it. 01 · PEOPLE 02 · APPLICATION SERVER 03 · DATA AND TARGETS time-bound requests self-service review configure hosts extends flags what to change identity data Windows targets aggregate, provision Users and reviewers saved review preferences Business owners review ownership,descriptions Business administrators redesigned application setup Jakarta EE 10 app server e.g. Tomcat 10.1; noWebLogic IdentityIQ 9.0 web app Jakarta EE 10, jakarta.*packages Rules, workflows, plugins updated to jakarta.* Upgrade tooling scans before you upgrade IdentityIQ database IQService Windows service for Win32APIs Connected applications through connectors © Cohash · cohash.com
01 · PEOPLE02 · APPLICATION SERVER03 · DATA AND TARGETS Users and reviewers: saved review preferences Users andreviewers saved reviewpreferences Business owners: review ownership, descriptions Businessowners reviewownership,descriptions Business administrators: redesigned application setup Businessadministrat… redesignedapplicationsetup Jakarta EE 10 app server: e.g. Tomcat 10.1; no WebLogic Jakarta EE 10app server e.g. Tomcat 10.1;no WebLogic IdentityIQ 9.0 web app: Jakarta EE 10, jakarta.* packages IdentityIQ 9.0web app Jakarta EE 10,jakarta.* packages Rules, workflows, plugins: updated to jakarta.* Rules,workflows,plugins updated tojakarta.* Upgrade tooling: scans before you upgrade Upgrade tooling scans before youupgrade IdentityIQ database IdentityIQdatabase IQService: Windows service for Win32 APIs IQService Windows servicefor Win32 APIs Connected applications: through connectors Connectedapplications throughconnectors time-bound requests self-service review configure identity data Windows targets aggregate, provision © Cohash · cohash.com
side by sideRunning IdentityIQ 8.5 against running 9.0, on what SailPoint has published
On IdentityIQ 8.5
  • Java EE application using javax.* packages
  • If you're on Tomcat, you can't go past Tomcat 9. Apache stops fixing 9.0.x on March 31, 2027
  • WebLogic and Solaris still supported
  • Temporary access through start and end dates
  • Reviewers have to rebuild their view every session. In a big campaign that adds up fast
  • Central admins keep ownership records and entitlement descriptions current. It's slow work for them
On IdentityIQ 9.0
  • A Jakarta EE 10 app, so its code uses jakarta.* packages. Code using the old javax EE packages won't load
  • Needs a server fully compatible with Jakarta EE 10. Tomcat 10.1 is one
  • WebLogic and Solaris no longer supported
  • You can give someone access until 5 p.m. Friday in their time zone, on a role or an entitlement
  • Reviewer preferences persist across sessions
  • Business owners review ownership and descriptions. Admins stop chasing them
chapter 03

What to do now

What to do now, by who you are

Identity program ownerthis month
  • Ask SailPoint Customer Success for your upgrade path and the 9.0 release date, in writing. Without both, any cutover date you set is a guess.
  • Ask your team one question: does IdentityIQ run on WebLogic, Solaris or Tomcat 9? The answer tells you how big the project is.
  • Budget for a rehearsal on a copy of production, with connectors pointed at test targets or provisioning turned off, and access limited as tightly as production. It finds broken rules before your users do.
  • Ask for your version's end-of-support dates. The public link to SailPoint's table no longer works, so you'll only get them from SailPoint.
Platform and infrastructurethis quarter
  • Write down the app server, operating system, Java and database version for every IdentityIQ environment, test ones included.
  • On WebLogic or Solaris, plan the move to a supported server or OS first. It's a project of its own and it sits in front of the upgrade.
  • On 8.3 or 8.4, build an 8.5 rehearsal environment. One community expert reports the pre-check only runs on 8.5 and 9.0.
  • Hold off on choosing Java and database versions until SailPoint publishes the 9.0 supported-platforms list.
Developersthis quarter
  • Export every rule, workflow, task definition and application, and list the plugins and custom JARs. You'll test against this list later.
  • Search custom code for Jakarta EE javax packages such as javax.servlet, javax.faces, javax.ws, javax.mail and javax.persistence. Leave core Java javax packages alone, since they keep their names.
  • Check the third-party libraries you bundle for Jakarta-compatible versions. They're easy to forget.
  • On 8.5, run SailPoint's pre-check and fix what it flags in your 9.0 branch, not on the 8.5 you're running. Run it again until it comes back clean.
Security and auditbefore go-live
  • List the admin roles that should only exist for a set window. On 9.0 you'll put start and end times on them.
  • Tell auditors which certification campaigns fall near the cutover. Nobody wants a review left half-done by an outage.
  • Find the business owners who'll take over ownership and description reviews, and warn them. Nobody likes surprise work in an audit year.

SailPoint hasn't published an upgrade path to 9.0. Its public upgrade considerations page says versions can be skipped, but community members report different guidance from SailPoint directly. In a September 2026 forum thread, one member of SailPoint's Expert Ambassador program (a community member, not SailPoint staff) wrote that SailPoint Customer Success Engineering advises installing every intermediate GA release. Another said SailPoint confirmed to them that an upgrade from 8.3 should go through 8.4 and then 8.5. Get your path confirmed in writing for your exact version before you schedule anything. The steps below are the order we'd work in, based on what's public.

From 8.x to 9.0, in order

  1. 01
    Inventory what you've customized

    Start with a list of every rule, workflow, task definition, application, plugin and custom JAR, and every file you changed on the server. The javax-to-jakarta change lands on these, and you'll test against the same list later.

  2. 02
    Check your platform against 9.0

    If IdentityIQ runs on Oracle WebLogic or on Solaris, plan the move to a supported application server or operating system first. SailPoint says 9.0 needs application servers fully compatible with Jakarta EE 10. For Java and database versions, wait for the 9.0 supported-platforms list, which SailPoint hasn't made public yet.

  3. 03
    Confirm your upgrade path with SailPoint

    Ask Support or your Customer Success Manager whether you can go straight to 9.0 from your version, or need to step through each GA release such as 8.4 and 8.5 first. Get the answer in writing.

  4. 04
    Run the readiness scan

    Run SailPoint's readiness tooling before changing anything. SailPoint describes a pre-check that flags custom Java classes and BeanShell in rules, forms and workflows that conflict with Jakarta EE 10, and custom applications whose formPaths point to XHTML files. One community expert reports SailPoint supports the pre-check only on 8.5 and 9.0, so on 8.3 or 8.4 you may need an 8.5 rehearsal environment.

  5. 05
    Move custom code from javax to jakarta

    Recompile plugins and custom JARs for jakarta.* and fix rules that import Jakarta EE classes under javax.*, such as javax.servlet. Don't skip the third-party libraries you bundle. They need Jakarta-compatible versions too, and they're easy to miss.

  6. 06
    Rehearse on a copy of production

    Run the full upgrade on production-like data and time it. Test the paths that matter: aggregation, provisioning, lifecycle events, access requests and approvals, certifications, scheduled tasks, IQService and key integrations.

  7. 07
    Cut over on the GA build

    Plan the cutover against the generally available release and its published release notes. The announcement isn't enough. Use the rehearsal timing as your production window, and have a rollback you've tested.

  8. 08
    Turn on what you upgraded for

    Once you're live, put temporary-access requests on start and end times and set up owner self-review of ownership and descriptions. Then retire whatever workarounds the new features replace.

Example output: finding javax importsexample output
# run on your exported rules and plugin source
# example only: add the other Jakarta EE javax packages you use
$ grep -rlE 'javax\.(servlet|faces|ws|mail|persistence)' export/ plugins/
export/Rule-LeaverCleanup.xml
plugins/requestPortal/src/web/AuthFilter.java
# each file here needs a jakarta rewrite
chapter 04

Harden so the next one hurts less

9.0 is a big jump because years of custom code and an aging platform pile up between upgrades. These are the habits that make the next one smaller, whatever SailPoint changes next.

What we'd change so the next upgrade is smaller

  1. 01
    Keep custom code in source control, with an owner

    Every rule, workflow and plugin should live in a repository with someone's name on it. Next time, the inventory step takes an afternoon, and you won't be digging through the server to find what's there.

  2. 02
    Keep custom code thin

    Use SailPoint's standard configuration for forms and scripts where 9.0 offers it, and only write Java plugins for what can't be done any other way. Less custom code means less to rewrite at the next platform change.

  3. 03
    Keep a rehearsal environment that looks like production

    Refresh a copy of production data on a schedule, with connectors pointed at test targets or provisioning turned off, and access limited as tightly as production. Then every patch and upgrade gets tried on something close to the real thing.

  4. 04
    Track support dates for every layer

    Put the end-of-support dates for IdentityIQ, your app server, Java and the OS in one calendar. Tomcat 9.0.x ending on March 31, 2027 is the kind of date that otherwise turns up as a surprise.

  5. 05
    Make privileged access temporary by default

    Once you're on 9.0, give admin roles start and end times so access expires on its own. When someone forgets to remove it, the end time does the job for them.

  6. 06
    Let owners keep their own data current

    Switch on owner self-review of ownership and entitlement descriptions. Review campaigns then run on accurate data, and central admins stop chasing people for it.

  7. 07
    Upgrade on a cadence

    Check once a year where you stand against SailPoint's GA releases. Small, regular upgrades are easier than one jump over several versions, especially if SailPoint wants every intermediate GA release installed.

chapter 05

If the upgrade goes wrong

If the upgrade goes wrong

A failed IdentityIQ upgrade isn't always obvious. Provisioning can stop quietly, or a rule can start failing in a nightly task. Agree your rollback point before cutover, then work through these phases in order.

  1. 01Prepare the way backweek before cutover
    • Take full backups of every IdentityIQ database (main, plugin and Access History if you use them), keep the 8.x install, its config and keystore files untouched, and keep the old IQService version ready to reinstall.
    • Write down the go/no-go tests: aggregation, provisioning, lifecycle events, access requests, certifications, scheduled tasks and IQService.
    • Tell the help desk and auditors the window. Reschedule any campaign due to start in it, and hold scheduled tasks.
  2. 02Stop and assessfirst hour
    • If a go/no-go test fails, stop before users come back in. Fixing forward under pressure is how a bad night turns into a bad week.
    • Read the IdentityIQ logs and task results for the failing path. Missing-class errors that name javax packages usually point to custom code nobody converted.
  3. 03Roll backfirst few hours
    • Restore the database from the cutover backup, start 8.x, then point users back. Re-aggregate key applications so 8.x sees anything 9.0 changed on target systems.
    • Keep scheduled tasks on hold until the restored system passes the same go/no-go tests you ran on 9.0.
  4. 04Catch upfirst day
    • Find the joiner, mover and leaver events that came in during the window and make sure each one ran. A leaver who kept access is the first thing auditors ask about.
    • Re-run failed provisioning and aggregation, then start the campaigns you rescheduled.
  5. 05Communicate and retryfirst week
    • Tell the help desk and application owners what happened and when you'll try again. Auditors need the same note, since a failed change is still a change.
    • Fix the cause in the rehearsal environment, rehearse again and time it, then book the new cutover.
chapter 06

How this could play out

How this could play out

01 IdentityIQ8.5 javax custom code 02 Tomcat 9.0.x support ends Mar… 03 Pre-check flags javax imports 04 IdentityIQ9.0 on Tomcat 10.1
scenario 01Medium risk
A mid-size company on IdentityIQ 8.5 and Tomcat 9
the setup
IdentityIQ 8.5 runs on Tomcat 9 with a handful of custom plugins written over the years. The team planned to let 9.0 settle for a year before touching it.
what happens
Tomcat 9.0.x support ends on March 31, 2027, and 8.5 can't move to Tomcat 10. The options are an unsupported Tomcat, a 9.1.x branch SailPoint hasn't confirmed for 8.x, or moving 8.5 to another app server it supports, such as JBoss EAP or WebSphere Liberty.
what to do
Run the pre-check on an 8.5 rehearsal now, and prepare the jakarta.* rewrites in a separate branch for the 9.0 build. Ask SailPoint about Tomcat 9.1 support in writing, then pick the cutover date with both answers in hand.
01 WebLogic onSolaris IdentityIQ 8.4 02 8.5 rehearsal pre-check runs here 03 Jakarta EE 10server e.g. Tomcat 10.1 04 IdentityIQ9.0
scenario 02High risk
A regional bank on 8.4, WebLogic and Solaris
the setup
A regional bank keeps identity governance on premises for regulatory reasons. IdentityIQ 8.4 runs on Oracle WebLogic, on Solaris servers.
what happens
Neither WebLogic nor Solaris is supported for 9.0, so the upgrade is a platform move too. One community expert reports the pre-check runs only on 8.5 and 9.0, so the team can't scan from 8.4.
what to do
Get the upgrade path in writing. Build an 8.5 rehearsal on a supported OS and an app server 8.5 supports, then plan the Jakarta EE 10 server for 9.0. Move the WebLogic data sources, session settings and health checks across as you go.
01 Leaver event 02 Customworkflow javax import left 03 Rehearsaltest catches the failure 04 Production
scenario 03Medium risk
A manufacturer with years of custom rules and Windows targets
the setup
IdentityIQ 8.5 runs on JBoss EAP, with IQService handling Windows targets and years of rules and workflows written in BeanShell.
what happens
The rehearsal upgrade finishes, but the leaver workflow fails. Its BeanShell still imports a javax class the pre-check flagged, and nobody fixed it.
what to do
Clear every pre-check finding before rehearsal. Test joiner, mover and leaver paths end to end, IQService included, and keep the rollback plan ready for go-live.

Cohash's identity practice plans and runs IdentityIQ upgrades. For 9.0, we review custom rules, workflows and plugins for the Jakarta EE move and rehearse on a copy of production data first. See the SailPoint platform page, hire SailPoint engineers for your own team, or book a free assessment of your IdentityIQ estate.

key takeaways

What to take from this

  1. 01

    9.0 moves to Jakarta EE 10 and drops WebLogic and Solaris. For WebLogic and Solaris sites that means a server move before the upgrade.

  2. 02

    Custom code that uses Jakarta EE javax.* packages is the code most likely to need work, so inventory it and run SailPoint's readiness scan early.

  3. 03

    The governance change to look for is time-based access with exact start and end times and time zones. 8.4 and 8.5 already do start and end dates.

  4. 04

    There's no confirmed GA date, only a tentative Q4 2026 target, and no release notes or platform list yet. Get your upgrade path and versions from SailPoint in writing.

platforms in this noteSailPoint →
fact-checked October 2026 against vendor and official documentation · where to go next
  1. How Cohash delivers SailPoint: scope, roles and architecture
  2. Hire vetted SailPoint engineers
  3. Identity governance practice
  4. Book a 30-minute working session with a senior engineer
01Is SailPoint IdentityIQ 9.0 available now?

Not with a confirmed date. SailPoint announced it at Navigate on October 6, 2026, and the press release talks about "the release of IdentityIQ 9.0". A SailPoint community post from March 2026 put the target at Q4 2026 and said that could change. On October 22, 2026 there still weren't public release notes or a 9.0 platform list. Ask your SailPoint Customer Success Manager where it stands before you book anything.

02Do we have to upgrade to IdentityIQ 9.0 straight away?

No. 9.0 has no confirmed release date yet, and you'll want the release notes and platform list before you commit. Start preparing now, though. The inventory, the platform check and the pre-check all take time, and on Tomcat 9 the March 2027 end of support sets your real deadline.

03Is IdentityIQ 9.0 an upgrade or a migration?

It's an upgrade. You stay on IdentityIQ instead of moving to SailPoint's cloud product, and SailPoint ships tooling to move existing deployments forward. For some teams it includes a platform move as well. If you're on Oracle WebLogic or Solaris you'll change application server or operating system, and custom code that uses Jakarta EE javax.* packages moves to jakarta.*.

04What's new in IdentityIQ 9.0?

Users will mostly notice time-based access: a role can start at 9 a.m. Monday and end at 5 p.m. Friday, in their own time zone. Reviewers keep their settings and search gets more accurate. Business owners review ownership and descriptions themselves. Your developers will notice the rest. 9.0 runs on Jakarta EE 10, the Application Definition UI moves from ExtJS to Angular 18, custom logic follows one standard configuration approach, and an automated upgrade tool comes with the release.

05Will my custom rules and plugins work on IdentityIQ 9.0?

Not without changes if they use Jakarta EE packages under javax.*. 9.0 implements Jakarta EE 10, so references such as javax.servlet, javax.faces and javax.ws have to be rewritten to jakarta.*. SailPoint's pre-check is meant to find custom Java classes and BeanShell in rules, forms and workflows that conflict. List your plugins, custom JARs and rules, run the scan, and test the fixed code in a rehearsal on a copy of production data.

06Does IdentityIQ 9.0 run on WebLogic or Solaris?

No. SailPoint's June 2026 notices say that from 9.0 on, WebLogic isn't a supported application server and the IdentityIQ server isn't supported on Solaris. 9.0 needs an application server fully compatible with Jakarta EE 10. SailPoint names Tomcat 10.1, and its roadmap also targets compatible JBoss EAP and WebSphere Liberty versions. SailPoint's 2025 roadmap also named Tomcat 11, but 9.0 support for it isn't publicly confirmed. The Solaris connector isn't affected.

07Can I upgrade straight from IdentityIQ 8.3 or 8.4 to 9.0?

There's no public answer from SailPoint yet. Its upgrade considerations page says you can skip versions. One community expert, though, reports that SailPoint Customer Success Engineering wants each intermediate GA release installed, and that SailPoint supports the 9.0 pre-check only on 8.5 and 9.0. A second says SailPoint confirmed an 8.3 to 8.4 to 8.5 path for them. Get your path from SailPoint in writing.

08When does IdentityIQ 8.x support end?

Not for 8.3, 8.4 or 8.5 right now. Each version gets a fixed support period after release, and the dates live in an end-of-life table on SailPoint's customer community, but the public link to it no longer resolves. Older dates do show up in public: IdentityIQ 8.1 hit limited support on February 21, 2023 and dropped out of support on February 21, 2024. Ask your Customer Success Manager for your version's dates.

09We're on IdentityIQ 8.5 and Tomcat 9. What happens when Tomcat 9 support ends?

Apache ends Tomcat 9.0.x support on March 31, 2027 and plans a 9.1.x branch with releases until December 31, 2030. IdentityIQ 8.5 can't go to Tomcat 10 or 11, because it uses javax.* packages. SailPoint hasn't said in public whether 8.x will support Tomcat 9.1. Ask SailPoint, and weigh the answer against a 9.0 upgrade.

up next in this track

Keep the thread going.

What shipped, what changed underneath, and what it means for your upgrade.

  1. 01HashiCorp Vault 2.2 explained: TPM login, post-quantum PKI and the October fixes
  2. 02Upgrading to SailPoint IdentityIQ 9.0: what breaks and what to fix first
  3. 03Terraform 1.17 explained: what's new, who it touches and how we'd upgrade
  4. 04BeyondTrust Remote Support zero-day: patch it, then check who got in
  5. 05Patch PHP and Node.js this week: what broke and who's exposed
  6. 06OpenShift support dates through 2027: which clusters run out first and how to plan the upgrades
  7. 07Oracle's October security patches: what to fix first in EBS, PeopleSoft and Access Manager
  8. 08Oracle's eMudhra alert now covers Database Server: patch, then test what breaks
  9. 09Delinea Secret Server auth bypass: why the FIDO2 hotfix isn't enough
  10. 10IBM Verify Access flaws let attackers run code without a login: patch to 11.0.3.2
  11. 11Foundry Workflows retire on December 1. We'd start moving yours to Agent Framework now
  12. 12Vertex AI is retiring text-embedding-005 and three other embedding models: how to re-embed before search breaks
  13. 13dbt drops v1.3 to v1.7 from its platform on January 31, 2027: get pinned jobs onto a release track before they're deleted
  14. 14Brotli CVE-2026-111497 is now on CISA's exploited list, and you probably run more copies than you think
  15. 15Auth0 moved the Rules and Hooks deadline: Hooks stop on 30 April 2027, Rules on 31 January 2028
  16. 16Still on Okta Classic Engine? Three features stop working on March 5, 2027, and two of them block the upgrade
  17. 17Patched GitLab, still exposed: the CI regex bug CISA lists as exploited, and the Ruby step people miss
  18. 18Patched Ivanti Connect Secure in October? Two more exploited bugs, and the AD cleanup
  19. 19Patch roundup, week of Oct 26: upgrade Secret Server today, then work down the list
  20. 20UiPath 2023.10 support has run out and 2024.10 is next. What we'd upgrade first
  21. 21Password Safe 24.3 runs out of support in December, and 26.3 is still one upgrade away
  22. 22Upgrade Entra Connect Sync before April 2027 and move users off Microsoft's SMS codes
  23. 23Chrome drops XSLT on 17 November. What breaks in InterSystems, and the fix for your version
  24. 24Agent Builder, Evals and saved prompts shut on 30 November. Here's what to pull out first
  25. 25BeyondTrust Remote Support and PRA 24.3 lose support in November, and there's no one-step upgrade
  26. 26OpenShift 4.19 is running out of support. Do you park on 4.22 or keep going to 5.0?
  27. 27Terraform Enterprise 2.1 moves VCS ingress into your agents. What to change before October 2027
  28. 28Mule 4.12 Edge leaves standard support this month. Upgrade to 4.13 before CloudHub does it for you
  29. 29RSA SecurID primary support ends in stages from December. Here's how you get to 8.9
  30. 30Delinea Secret Server login bypass: why 12.2.7 won't save you from this 9.9
  31. 31Entra password reset won't take directory phone numbers from February 2027. Who gets stuck?
  32. 32Linux kernel CVE-2026-98432: why switching off MPTCP won't save you, and what to patch
  33. 33Patch roundup, week of Nov 2: fix Linux and WS_FTP first, then work down the list
  34. 34Auth0's lazy migration changes on 20 January 2027, and half-imported users won't fix themselves
  35. 35Your Databricks AI Functions need Runtime 17.3 LTS by January 2027, even if 15.4 is still supported
  36. 36SonicWall's SSL VPN bug lets a valid password skip SAML and your MFA
  37. 37Oversized Auth0 profiles can break logins after 4 March 2027. Here's how to find yours
  38. 38You patched your Cisco email gateway. One email can still take it over.
all learning tracks →
TERRAFORM 1.16 Fixed providerstrings Refresh everything Policy flagexperimental TERRAFORM 1.17 Vars in providersources -minimal-refreshoption Policy GA in the CLI
Cloud · 17 minTerraform 1.17 explained: what's new, who it touches and how we'd upgrade

Small release, faster plans, one catch: the fast plan can miss drift.

read next
next step

Tell us what you're running. We'll tell you what we'd do first.

A 30-minute working session with a senior engineer. No slides.

useful to bring
  • 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