system.util.jsonEncode output not the same in webdev module

After upgrading to ignition 8.3, something broke with the system.util.jsonEncode function.

If the call is made from the webdev module, some key-value pair will changes to dictionaries?

system.util.jsonEncode called from WebDev:

system.util.jsonEncode called from project script or message handler:

Webdev in 8.1 would generate the same output. (the desired output)

Am I missing something?

Thanks

What is the object you are encoding? Can you add some debug logging e.g. print type(value) before passing value to system.util.jsonEncode?

Sure can,

Type is dict:

Screenshot 2025-09-23 083441

here the code in webdev:

the output : is a key that contains an array.

each item in the array:

What's the type of the thing in a message handler? What are the contents of the dict? Can you compare them?

The behavior of jsonEncode doesn't change based on where you call it from. The only difference here can be that you are passing slightly different objects to it somehow.

the sendRequest sends back a list

this is the message handler:

the commented line, that what it was before I change to 8.3 to get my result.

now if I encode here, no problem.

modified webdev part, this gives me what 8.1 did.

What kinds of things are in the res list?

It seems that whatever they are, they might not be getting serialized/deserialized when returned by sendRequest the same was as in 8.1, or may be entirely different now.

(post deleted by author)

replicated in simple projects

test_remoteGtw.zip (3.1 KB)

test_caller.zip (4.7 KB)

@paul-griffith do you recognize that dataType/value pair? Is this maybe some protobuf RPC thing?

remark: I did change from java serialization to protobuf in gateway settings.