Errors after upgrade to 2.22.4 on cloud

n8n 2.22.4 on cloud

we upgraded yesteday and many flows are misbehaving. problem is in Edit(Set) node, pls see the image.

so Edit node reads and sets some string variable. but it is null in output. value is determined correctly.

this happened after upgrade(but not clear which version was upgraded from)

@Edmunds_Priede whats ur Set node mode — Manual Mapping or JSON? and is the value an expression like {{ $json.x }} or a static string? value showing in the editor but null in output usually means the expression isnt resolving against the right input, which knob to check depends on the mode.

here is error isolated, not sure what is going on

https://edmunds-kls.tinytake.com/df/184f166/thumbnail?type=attachments&version_no=0&file_version_no=0&thumbnail_size=preview

it definitrely started right aftter upgrade

type conversion shoud not be problem, but i even turned on ignore type mismatch

@Edmunds_Priede , can you downgrade to 2.21.7?
Does it work?

i am not owner for cloud but owner tried yesterday but did not find option to downgrade on cloud

can you share the workflow?

it is very basic

just a jmespath function

New Order with topup TESTING.json (3.5 KB)

@Edmunds_Priede , can you try this?

works, but then i have to replace 100 jmespath functions. shoud i do it or there is a fix?

Your $jmespath is broken.

it depends

how? it was working just fine

@Edmunds_Priede , you can try this.

Export your entire workflow as a JSON file and open it in a text editor like VS Code. Use a Regular Expression (Regex) search and replace to find the $jmespath pattern—specifically searching for $jmespath($json.body.meta_data\s*,\s*“[?key\s*==\s*‘([^’]+)'.value”)[0]—and replace it with the JavaScript equivalent: $json.body.meta_data.find(item => item.key === ‘$1’)?.value. Once the replacement is complete across the whole file, save the JSON and import it back into n8n

Key thing

  1. Search for this Regex: \$jmespath\(\$json\.body\.meta_data\s*,\s*"\[\?key\s*==\s*'([^']+)'.value"\)\[0\]

  2. Replace with this: $json.body.meta_data.find(item => item.key === '$1')?.value

@Edmunds_Priede this is another alternative

Can you give it a try? Adding a code node after GetProduct should solve broken $jmespath issue. Let me know

Hi everyone, we’ve identified an issue on the expression engine in 2.22.4. A fix will be tagged asap on 2.22.5

Hey all, the issue should now be resolved on 2.22.5 so if you’re running into jmespath issues, simply upgrade to latest stable and all should be well again.