confluent-schema-registry icon indicating copy to clipboard operation
confluent-schema-registry copied to clipboard

Problem with google.protobuf.StringValue

Open zion03 opened this issue 1 year ago • 3 comments

Hi! I have the following proto-buff schema:

message User {	 
string firstName = 1;
google.protobuf.StringValue email = 2;
}

And payload looks like this:

{
firstName: "User name",
email: '[email protected]'
}

And I'm receiving following error:

{
    "error": {
        "message": "invalid payload",
        "paths": [
            [
                "email.object expected"
            ]
        ],
        "correctBodyExample": " { \"firstName\": \"User name\",   \"email\": \"[email protected]\"}"
    }
}

But when I convert email into the object it works correctly:

{
firstName: "User name",
email: { value: '[email protected]' }
}

Could you advise how to fix this problem? Thanks!

zion03 avatar Apr 28 '23 10:04 zion03

Hi. There's a couple of things you could try.

It isn't clear if you have imported the proto reference at the start of your proto file?

And have you tried using double quotes for the email field of the payload?

Let me know if either of those work.

alphaspl0it avatar Jun 30 '23 10:06 alphaspl0it

@zion03 did this work? 🤞

alphaspl0it avatar Jul 07 '23 05:07 alphaspl0it

Same problem for me with the following schema:

syntax = "proto3";

import "google/protobuf/wrappers.proto";

message PowerData {
  google.protobuf.StringValue powerSource = 1;
  google.protobuf.StringValue batteryStatus = 2;
  google.protobuf.StringValue lastUpdated = 3;
  google.protobuf.DoubleValue powerSourceVoltage = 4;
  google.protobuf.DoubleValue batteryVoltage = 5;
  google.protobuf.Int32Value batteryPercent = 6;
  google.protobuf.BoolValue batteryLow = 7;
  google.protobuf.BoolValue batteryChargeOk = 8;
  google.protobuf.BoolValue psuOk = 9;
}

aleksanderaleksic avatar Mar 15 '24 10:03 aleksanderaleksic