Skip to content

Fix potential issues when retrieving variables with unresolvable variable values - #4299

Open
tijsrademakers wants to merge 1 commit into
mainfrom
unresolvable-variable-values
Open

tijsrademakers wants to merge 1 commit into
mainfrom
unresolvable-variable-values

Conversation

@tijsrademakers

Copy link
Copy Markdown
Contributor

A variable whose value cannot be resolved (e.g. a serialized value that can no longer be deserialized, or a custom variable type that fails to load its value) failed every read that returned variables, like the variable instance queries, the queries including variables and the variable REST endpoints.

  • Such a variable is now returned with a null value instead of failing the read, and it is marked as having an unresolvable value (HasUnresolvableValue on the runtime and historic variable entities), so reading its value again returns null instead of failing again.
  • This applies to the (historic) variable instance queries, the queries including variables and getVariable(s)(Local) of the RuntimeService, CmmnRuntimeService, TaskService and CmmnTaskService. Variable access during process / case execution and case reactivation stay strict.
  • The REST variable responses get a valueUnresolvable marker (only present when true) for such a variable.

Check List:

  • Unit tests: YES / NO / NA
  • Documentation: YES / NO / NA

@github-actions

github-actions Bot commented Oct 5, 2026 •

Copy link
Copy Markdown

Test Results

1 325 files  + 2  1 325 suites  +2   26m 38s ⏱️ -43s
9 764 tests +11  9 683 ✅ +11  81 💤 ±0  0 ❌ ±0 
9 569 runs  +11  9 508 ✅ +11  61 💤 ±0  0 ❌ ±0 

Results for commit 7b34bc4. ± Comparison against base commit 24c15cc.

♻️ This comment has been updated with latest results.

…able values

A variable whose value cannot be resolved (e.g. a serialized value that can no longer be
deserialized, or a custom variable type that fails to load its value) failed every read that
returned variables, like the variable instance queries, the queries including variables and
the variable REST endpoints.

- The (historic) variable instance queries and the queries including variables return such a
  variable with a null value instead of failing, and mark it as having an unresolvable value
  (HasUnresolvableValue on the runtime and historic variable entities), so reading its value
  again returns null instead of failing again.
- getVariable(s) of the RuntimeService, CmmnRuntimeService, TaskService and CmmnTaskService
  still fail for such a variable, as do variable access during process / case execution and
  case reactivation.
- The variable REST endpoints read the variable instances and resolve their values when the
  REST response is created, so such a variable is returned with a null value and a
  valueUnresolvable marker (only present when true) instead of failing the whole response.
@tijsrademakers
tijsrademakers force-pushed the unresolvable-variable-values branch from bcf95b9 to 7b34bc4 Compare October 5, 2026 12:36

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant