Holochain Forum

Invalid type: null, expected struct InputStruct when calling zome method

Hi Guys,

I am just in the process of upgrading HoloNET (.NET & Unity Client) to the latest hc conductor and code that use to work not surprisingly is not breaking, the latest I am trying to resolve is this error below:


 {"jsonrpc":"2.0","result":"{\"SerializationError\":\"invalid type: null, expected struct InputStruct at line 1 column 4\"}"

It is calling a simple test zome with no params:

#[zome_fn("hc_public")]

    fn test() -> ZomeApiResult<String> 

    {

        //Ok("Hello " + message + ", welcome to Our World!")

        Ok("Hello, welcome to Our World!".to_string())

    }

So I am not sure why it is expecting InputStruct? I presume this means params/args to be passed in?

Maybe its the way a zome is called that has changed in the conductor?

Currently the RPC call that HoloNET makes for this request is below:

{"jsonrpc":"2.0","id":"1","method":"call","params":{"instance_id":"test-instance","zome":"our_world_core","function":"test","params":null}}

Any help would be greatly appreciated.

Also, how do you stop the conductor sending all the debug info to the client?! lol

 {"type":"InstanceStats","instance_stats":{"test-instance":{"number_held_entries":4,"number_held_aspects":4,"number_pending_validations":0,"number_delayed_validations":0,"number_running_zome_calls":0,"offline":false}}}

Many thanks,
David.

YAY, FIXED IT! :slight_smile:

They reamed params to args so it is now as below:


await SendMessageAsync(JsonConvert.SerializeObject(
                new
                {
                    jsonrpc = "2.0",
                    id,
                    method = "call",
                    @params = new { instance_id = instanceId, zome, function, args = paramsObject }
                    //@params = new { instance_id = instanceId, zome, function, @params = paramsObject }
                }
            ));

1 step closer to getting HoloNET fully working with the latest conductor… :slight_smile: