# Application Initiated Actions - Case Sensitivity?

**URL:** <https://forum.keycloak.org/t/application-initiated-actions-case-sensitivity/29283>\
**Category:** Getting advice\
**Tags:** oidc\
**Created:** [December 19, 2024, 7:33am UTC](https://forum.keycloak.org/t/application-initiated-actions-case-sensitivity/29283 "2024-12-19T07:33:32Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![CertainPassenger](https://yyz2.discourse-cdn.com/free1/user_avatar/forum.keycloak.org/certainpassenger/32/11725_2.png) [@CertainPassenger](https://forum.keycloak.org/u/CertainPassenger)\
**Post date:** [December 19, 2024, 7:33am UTC](https://forum.keycloak.org/t/application-initiated-actions-case-sensitivity/29283/1 "2024-12-19T07:33:32Z")

</div>

Hello together,

we’re using Keycloak running in Docker (bitnami/keycloak to be exact) to authenticate users. Using the application initiated actions (AIA) we want to let users update their password, delete their account, etc. Additionally, we also use a custom UPDATE\_PROFILE to require users to reauthenticate before changing their profile (see: [Require Reauthentication for Update Profile](https://forum.keycloak.org/t/require-reauthentication-for-update-profile/29053)). This works quite nicely, however we’ve encountered a weird edge case: The kc\_action needs to be in an exact case for our AIA to work. For instance ‘kc\_action=delete\_account’ works, but ‘kc\_action=DELETE\_ACCOUNT’ throws the following exception:  
` java.lang.NullPointerException: Cannot invoke "org.keycloak.authentication.RequiredActionProvider.getMaxAuthAge()" because "requiredActionProvider" is null`.

However, for update profile and password, the case is reversed. It works for ‘kc\_action=UPDATE\_PASSWORD’ and ‘kc\_action=UPDATE\_PROFILE’, but using the lower-case spelling ‘kc\_action=update\_password’ or ‘kc\_action=update\_profile’ throws the same exception:  
`Failed authentication: java.lang.NullPointerException: Cannot invoke "org.keycloak.authentication.RequiredActionProvider.getMaxAuthAge()" because "requiredActionProvider" is null`.

Now to my question: Is this the correct behavior or is there some kind of setting that we did not set or set incorrectly?

---

<div class="post-metadata">

**Author:** ![dasniko](https://yyz2.discourse-cdn.com/free1/user_avatar/forum.keycloak.org/dasniko/32/2969_2.png) [@dasniko](https://forum.keycloak.org/u/dasniko)\
**Post date:** [December 19, 2024, 7:49am UTC](https://forum.keycloak.org/t/application-initiated-actions-case-sensitivity/29283/2 "2024-12-19T07:49:36Z")

</div>

That’s the result of different developers writing different code without having proper coding conventions and checks. Just like in any other regular project… 😅  
The proper value to use is always the value the `getId()` factory method returns.

---

<div class="post-metadata">

**Author:** ![CertainPassenger](https://yyz2.discourse-cdn.com/free1/user_avatar/forum.keycloak.org/certainpassenger/32/11725_2.png) [@CertainPassenger](https://forum.keycloak.org/u/CertainPassenger)\
**Post date:** [December 19, 2024, 8:07am UTC](https://forum.keycloak.org/t/application-initiated-actions-case-sensitivity/29283/3 "2024-12-19T08:07:26Z")

</div>

Ah! So provider\_id for delete\_account is lower case ([keycloak/services/src/main/java/org/keycloak/authentication/requiredactions/DeleteAccount.java at main · keycloak/keycloak · GitHub](https://github.com/keycloak/keycloak/blob/main/services/src/main/java/org/keycloak/authentication/requiredactions/DeleteAccount.java#L49)) but for the other required actions the Enum name is used, which is upper case ([keycloak/server-spi/src/main/java/org/keycloak/models/UserModel.java at main · keycloak/keycloak · GitHub](https://github.com/keycloak/keycloak/blob/main/server-spi/src/main/java/org/keycloak/models/UserModel.java#L233-L242)). Alright, then we have to be careful when building the AIA. Thank you very much for clearing that up!
