Open marcinkiewiczblazej opened 2 years ago
Thanks for opening this issue @marcinkiewiczblazej. It seems like this is a problem with Aries Framework JavaScript, but it is weird this is only happening in the release build.
Do you have a copy of the proof request you're sending on the verifier side? And maybe also the complete message that is received on the holder side?
@JamesKEbert is this the issue you were running into with maps?
Here's the message sent from verifier (it's sent using aca-py admin endpoint /present-proof/send-request
):
{
"proof_request": {
"name": "Proof of ID Credentials",
"version": "1.0",
"requested_attributes": {
"0_first_name_uuid": {
"name": "first_name",
"restrictions": [
{
"schema_name": "id credentials",
"schema_id": "5pnRkcshgidE6AoRaLdXce:2:id credentials:75.52.44",
"cred_def_id": "5pnRkcshgidE6AoRaLdXce:3:CL:42075:SSI_DESK.id_credentials"
}
]
},
"0_last_name_uuid": {
"name": "last_name",
"restrictions": [
{
"schema_name": "id credentials",
"schema_id": "5pnRkcshgidE6AoRaLdXce:2:id credentials:75.52.44",
"cred_def_id": "5pnRkcshgidE6AoRaLdXce:3:CL:42075:SSI_DESK.id_credentials"
}
]
},
"0_picture_uuid": {
"name": "picture",
"restrictions": [
{
"schema_name": "id credentials",
"schema_id": "5pnRkcshgidE6AoRaLdXce:2:id credentials:75.52.44",
"cred_def_id": "5pnRkcshgidE6AoRaLdXce:3:CL:42075:SSI_DESK.id_credentials"
}
]
},
"0_gender_uuid": {
"name": "gender",
"restrictions": [
{
"schema_name": "id credentials",
"schema_id": "5pnRkcshgidE6AoRaLdXce:2:id credentials:75.52.44",
"cred_def_id": "5pnRkcshgidE6AoRaLdXce:3:CL:42075:SSI_DESK.id_credentials"
}
]
},
"0_birth_date_uuid": {
"name": "birth_date",
"restrictions": [
{
"schema_name": "id credentials",
"schema_id": "5pnRkcshgidE6AoRaLdXce:2:id credentials:75.52.44",
"cred_def_id": "5pnRkcshgidE6AoRaLdXce:3:CL:42075:SSI_DESK.id_credentials"
}
]
}
},
"requested_predicates": {}
},
"trace": false,
"connection_id": "74854c4f-42bc-4ab0-b0d0-07ef837c3e62"
}
Here's the request that arrives on the holder side:
12-09 16:33:47.026 20969 21000 E ReactNativeJS: { name: 'Proof of ID Credentials',
12-09 16:33:47.026 20969 21000 E ReactNativeJS: version: '1.0',
12-09 16:33:47.026 20969 21000 E ReactNativeJS: requestedAttributes:
12-09 16:33:47.026 20969 21000 E ReactNativeJS: { '0_first_name_uuid':
12-09 16:33:47.026 20969 21000 E ReactNativeJS: { name: 'first_name',
12-09 16:33:47.026 20969 21000 E ReactNativeJS: restrictions:
12-09 16:33:47.026 20969 21000 E ReactNativeJS: [ { schema_name: 'id credentials',
12-09 16:33:47.026 20969 21000 E ReactNativeJS: schema_id: '5pnRkcshgidE6AoRaLdXce:2:id credentials:75.52.44',
12-09 16:33:47.026 20969 21000 E ReactNativeJS: cred_def_id: '5pnRkcshgidE6AoRaLdXce:3:CL:42075:SSI_DESK.id_credentials' } ] },
12-09 16:33:47.026 20969 21000 E ReactNativeJS: '0_last_name_uuid':
12-09 16:33:47.026 20969 21000 E ReactNativeJS: { name: 'last_name',
12-09 16:33:47.026 20969 21000 E ReactNativeJS: restrictions:
12-09 16:33:47.026 20969 21000 E ReactNativeJS: [ { schema_name: 'id credentials',
12-09 16:33:47.026 20969 21000 E ReactNativeJS: schema_id: '5pnRkcshgidE6AoRaLdXce:2:id credentials:75.52.44',
12-09 16:33:47.026 20969 21000 E ReactNativeJS: cred_def_id: '5pnRkcshgidE6AoRaLdXce:3:CL:42075:SSI_DESK.id_credentials' } ] },
12-09 16:33:47.026 20969 21000 E ReactNativeJS: '0_picture_uuid':
12-09 16:33:47.026 20969 21000 E ReactNativeJS: { name: 'picture',
12-09 16:33:47.026 20969 21000 E ReactNativeJS: restrictions:
12-09 16:33:47.026 20969 21000 E ReactNativeJS: [ { schema_name: 'id credentials',
12-09 16:33:47.026 20969 21000 E ReactNativeJS: schema_id: '5pnRkcshgidE6AoRaLdXce:2:id credentials:75.52.44',
12-09 16:33:47.026 20969 21000 E ReactNativeJS: cred_def_id: '5pnRkcshgidE6AoRaLdXce:3:CL:42075:SSI_DESK.id_credentials' } ] },
12-09 16:33:47.026 20969 21000 E ReactNativeJS: '0_gender_uuid':
12-09 16:33:47.026 20969 21000 E ReactNativeJS: { name: 'gender',
12-09 16:33:47.026 20969 21000 E ReactNativeJS: restrictions:
12-09 16:33:47.026 20969 21000 E ReactNativeJS: [ { schema_name: 'id credentials',
12-09 16:33:47.026 20969 21000 E ReactNativeJS: schema_id: '5pnRkcshgidE6AoRaLdXce:2:id credentials:75.52.44',
12-09 16:33:47.026 20969 21000 E ReactNativeJS: cred_def_id: '5pnRkcshgidE6AoRaLdXce:3:CL:42075:SSI_DESK.id_credentials' } ] },
12-09 16:33:47.026 20969 21000 E ReactNativeJS: '0_birth_date_uuid':
12-09 16:33:47.026 20969 21000 E ReactNativeJS: { name: 'birth_date',
12-09 16:33:47.026 20969 21000 E ReactNativeJS: restrictions:
12-09 16:33:47.026 20969 21000 E ReactNativeJS: [ { schema_name: 'id credentials',
12-09 16:33:47.026 20969 21000 E ReactNativeJS: schema_id: '5pnRkcshgidE6AoRaLdXce:2:id credentials:75.52.44',
12-09 16:33:47.026 20969 21000 E ReactNativeJS: cred_def_id: '5pnRkcshgidE6AoRaLdXce:3:CL:42075:SSI_DESK.id_credentials' } ] },
12-09 16:33:47.026 20969 21000 E ReactNativeJS: nonRevoked: undefined },
12-09 16:33:47.026 20969 21000 E ReactNativeJS: requestedPredicates:
12-09 16:33:47.026 20969 21000 E ReactNativeJS: { predicateType: undefined,
12-09 16:33:47.026 20969 21000 E ReactNativeJS: predicateValue: undefined,
12-09 16:33:47.026 20969 21000 E ReactNativeJS: nonRevoked: undefined },
12-09 16:33:47.026 20969 21000 E ReactNativeJS: nonce: '732767484921536234178379',
12-09 16:33:47.026 20969 21000 E ReactNativeJS: nonRevoked: undefined }
There were also errors about strings, arrays, eg:
12-08 15:32:20.911 29269 29298 E ReactNativeJS: ERROR: Child {
12-08 15:32:20.911 29269 29298 E ReactNativeJS: "isString": "name must be a string"
12-08 15:32:20.911 29269 29298 E ReactNativeJS: }
@TimoGlastra we've found the issue. For Android we've had to enable Hermes, without it we couldn't make agent work properly. It turns out that in release build Hermes is messing up with the validation library used in AFJ, but only in the request-presentation
message. Issuing credential flow works fine.
If we enable Hermes for iOS application in release build we have the very same problem.
When handling request presentation message I'm getting an error:
Unfortunately the message is quite long and gets truncated. I've been digging deeper and it seems that the provided message is failing on validation. Example error (I've added few more logs to catch that):
In the message that arrived
requestedPredicates
was empty map:The very same message is correctly processed by debug Android build. There's also no problem with iOS version, both release and debug.
I've tested versions 1.14 and 1.15. Result is the same. The only setup difference is that Android version is using Hermes. Without it, it was failing on zmq.