bifold-wallet icon indicating copy to clipboard operation
bifold-wallet copied to clipboard

iOS sleep/lock crash (ZMQ)

Open JamesKEbert opened this issue 2 years ago • 5 comments

Hi Folks! As part of the efforts to update Aries Bifold to 0.70.1 of React Native, we've encountered a serious bug resulting from ZMQ in the Indy SDK on iOS with React Native v0.68.x or newer.

The Issue

The behavior observed is that when a user on iOS has connected to or is in the process of opening the ledger pools (aka the connection to the Indy ledger(s)) and they either let their device sleep or lock their device, upon unlocking the device, the app will hard crash and display a message such as "Aries Bifold has crashed".

Our troubleshooting has surfaced that when backgrounding the app (via the device going to sleep or being locked), iOS is reclaiming the TCP sockets that ZMQ is using when communicating with the ledger nodes. When the app is foregrounded again, ZMQ does not gracefully handle the sockets being reclaimed, and ZMQ subsequently crashes the app with an assert, which is not catchable/handleable. Relevant iOS documentation on networking behavior.

We've created a fresh, minimal React Native project (fresh RN 0.70.1 install, Indy-sdk-react-native setup, and AFJ dependencies) for reproduction of the issue: https://github.com/JamesKEbert/iosindyrntest

iOS Device Logs (partially abbreviated)
2022-09-28 12:44:54.192610-0600 ariesbifold[539:16761] [javascript] DEBUG: Connection completed, requesting mediation
2022-09-28 12:44:54.193021-0600 ariesbifold[539:16761] [javascript] 'DEBUG: Send outbound message', '{\n  "message": {\n    "@type": "https://didcomm.org/trust_ping/1.0/ping",\n    "response_requested": false,\n    "@id": "b7770990-1b63-4b87-8982-abe1d680174b",\n    "~transport": {\n      "return_route": "none"\n    }\n  },\n  "connectionId": "f41e4161-1da7-440a-8234-e91b293cc1b2"\n}'
2022-09-28 12:44:54.193327-0600 ariesbifold[539:16761] [javascript] 'DEBUG: Retrieving services for connection \'f41e4161-1da7-440a-8234-e91b293cc1b2\' (Indicio Proven Mediator)', '{\n  "connection": {\n    "_tags": {\n      "outOfBandId": "404290b8-8158-40c2-a944-3a8ff72d87cd",\n      "did": "did:peer:1zQmc7pXD4vikj1i3XCrfg9Euwo2HHrfo84x5ysUQzcJGiWQ",\n      "state": "request-sent",\n      "role": "requester",\n      "invitationDid": "did:peer:2.SeyJzIjoiaHR0cHM6Ly9wcm92ZW4ubWVkaWF0b3IuaW5kaWNpb3RlY2guaW8iLCJ0IjoiZGlkLWNvbW11bmljYXRpb24iLCJwcmlvcml0eSI6MCwicmVjaXBpZW50S2V5cyI6WyJkaWQ6a2V5Ono2TWtwajROaXQ2SmtVVjJ1MWg3UEV0bXlDQU5ja0ZSaWd6NXhDc3hLZFBxclptTiN6Nk1rcGo0Tml0NkprVVYydTFoN1BFdG15Q0FOY2tGUmlnejV4Q3N4S2RQcXJabU4iXX0",\n      "threadId": "1d1ae534-af16-493e-8e4b-0a28b21554d4"\n    },\n    "metadata": {},\n    "id": "f41e4161-1da7-440a-8234-e91b293cc1b2",\n    "createdAt": "2022-09-28T18:44:53.609Z",\n    "did": "did:peer:1zQmc7pXD4vikj1i3XCrfg9Euwo2HHrfo84x5ysUQzcJGiWQ",\n    "invitationDid": "did:peer:2.SeyJzIjoiaHR0cHM6Ly9wcm92ZW4ubWVkaWF0b3IuaW5kaWNpb3RlY2guaW8iLCJ0IjoiZGlkLWNvbW11bmljYXRpb24iLCJwcmlvcml0eSI6MCwicmVjaXBpZW50S2V5cyI6WyJkaWQ6a2V5Ono2TWtwajROaXQ2SmtVVjJ1MWg3UEV0bXlDQU5ja0ZSaWd6NXhDc3hLZFBxclptTiN6Nk1rcGo0Tml0NkprVVYydTFoN1BFdG15Q0FOY2tGUmlnejV4Q3N4S2RQcXJabU4iXX0",\n    "theirLabel": "Indicio Proven Mediator",\n    "state": "completed",\n    "role": "requester",\n    "autoAcceptConnection": true,\n    "threadId": "1d1ae534-af16-493e-8e4b-0a28b21554d4",\n    "protocol": "https://didcomm.org/connections/1.0",\n    "outOfBandId": "404290b8-8158-40c2-a944-3a8ff72d87cd",\n    "theirDid": "did:peer:1zQmVYBg2PY3H8oeYrzfwvBS5258yA6PULrrhcBERLLZ46oz"\n  }\n}'
2022-09-28 12:44:54.193477-0600 ariesbifold[539:16761] [javascript] DEBUG: Resolving services for connection theirDid did:peer:1zQmVYBg2PY3H8oeYrzfwvBS5258yA6PULrrhcBERLLZ46oz.
2022-09-28 12:44:54.193675-0600 ariesbifold[539:16761] [javascript] DEBUG: resolving didUrl did:peer:1zQmVYBg2PY3H8oeYrzfwvBS5258yA6PULrrhcBERLLZ46oz
2022-09-28 12:44:54.196799-0600 ariesbifold[539:16761] [javascript] 'DEBUG: Retrieved 2 services for message to connection \'f41e4161-1da7-440a-8234-e91b293cc1b2\'(Indicio Proven Mediator)\'', '{\n  "hasQueueService": false\n}'
2022-09-28 12:44:54.196829-0600 ariesbifold[539:16761] [javascript] DEBUG: resolving didUrl did:peer:1zQmc7pXD4vikj1i3XCrfg9Euwo2HHrfo84x5ysUQzcJGiWQ
2022-09-28 12:44:54.199518-0600 ariesbifold[539:16761] [javascript] 'DEBUG: Sending outbound message to service:', '{\n  "messageId": "b7770990-1b63-4b87-8982-abe1d680174b",\n  "service": {\n    "id": "#indy",\n    "recipientKeys": "omitted...",\n    "routingKeys": "omitted...",\n    "serviceEndpoint": "https://proven.mediator.indiciotech.io"\n  }\n}'
2022-09-28 12:44:54.201658-0600 ariesbifold[539:16761] [javascript] DEBUG: Pack outbound message https://didcomm.org/trust_ping/1.0/ping
2022-09-28 12:44:54.202317-0600 ariesbifold[539:16761] [javascript] INFO: Requesting mediation for connection f41e4161-1da7-440a-8234-e91b293cc1b2
2022-09-28 12:44:54.204033-0600 ariesbifold[539:16761] [javascript] 'DEBUG: Sending outbound message to endpoint \'https://proven.mediator.indiciotech.io\'', '{\n  "payload": {\n    "protected": "eyJlbmMiOiJ4Y2hhY2hhMjBwb2x5MTMwNV9pZXRmIiwidHlwIjoiSldNLzEuMCIsImFsZyI6IkF1dGhjcnlwdCIsInJlY2lwaWVudHMiOlt7ImVuY3J5cHRlZF9rZXkiOiI4MU9Lb2lfQ2U5ZjdRNE5LVHYwOVg1eXg0aUE2N0t2UEZPRE5leU9NazNtXzZveUpJRHoyT1ZVU29xWGMtUG9nIiwiaGVhZGVyIjp7ImtpZCI6IjMzZHNNWjU4UUFwaTFINldNZUNNcUtHeHphVm9vRnpCbVFyWjFvVFBodlk1IiwiaXYiOiJ2U2ZCSk9SeTBkd3d4NmZHaEpheDJXRnNUZnBUQWZMeCIsInNlbmRlciI6Im93ZkppWmdWSENScXl3VUlmQ2x2UVFXZlpWcDJPY3doM3B3cEU5UnlXQ2czVzNhNDM1WWJoREpRSkR5X1FBNmZQYjBqV3dCSVItVlc4ZzBJdVdvdUpHSG85SXlCbTV1Q1JFVWtiOEk1WC1RQ0N1WlNUcVBlaFFfaDJhYz0ifX1dfQ==",\n    "iv": "vA2wHq68Vy1lFpOP",\n    "ciphertext": "BIxUMXRYwEtRhsH2jFI0AbLpX2kwUE2X8WhG7FxEoA_4CwGwSrMM1mua_CvivHRWgGAXnwtC6WjbQi2dmg9S1KDvmaDaXn-Qiv4seDFckVJM_5xrcyar90Q-VrWDvzVDKWRpE4CrDLAerVydT1Ykp-hnvscLD1IE_pY1zL5A19Aysp1wJMdXG675Nt5ZWKloms1V2LI7eLe35eFgxO4TIA==",\n    "tag": "fKuIqR9YNi-01Az2dIqucQ=="\n  }\n}'
2022-09-28 12:44:54.207363-0600 ariesbifold[539:16761] [javascript] 'DEBUG: Send outbound message', '{\n  "message": {\n    "@type": "https://didcomm.org/coordinate-mediation/1.0/mediate-request",\n    "@id": "934876c8-820f-4310-a689-efcf5786994e",\n    "~l10n": {\n      "locale": "en"\n    }\n  },\n  "connectionId": "f41e4161-1da7-440a-8234-e91b293cc1b2"\n}'
2022-09-28 12:44:54.207687-0600 ariesbifold[539:16761] [javascript] 'DEBUG: Retrieving services for connection \'f41e4161-1da7-440a-8234-e91b293cc1b2\' (Indicio Proven Mediator)', '{\n  "transportPriority": {\n    "schemes": [\n      "wss",\n      "ws"\n    ],\n    "restrictive": true\n  },\n  "connection": {\n    "_tags": {\n      "outOfBandId": "404290b8-8158-40c2-a944-3a8ff72d87cd",\n      "did": "did:peer:1zQmc7pXD4vikj1i3XCrfg9Euwo2HHrfo84x5ysUQzcJGiWQ",\n      "state": "request-sent",\n      "role": "requester",\n      "invitationDid": "did:peer:2.SeyJzIjoiaHR0cHM6Ly9wcm92ZW4ubWVkaWF0b3IuaW5kaWNpb3RlY2guaW8iLCJ0IjoiZGlkLWNvbW11bmljYXRpb24iLCJwcmlvcml0eSI6MCwicmVjaXBpZW50S2V5cyI6WyJkaWQ6a2V5Ono2TWtwajROaXQ2SmtVVjJ1MWg3UEV0bXlDQU5ja0ZSaWd6NXhDc3hLZFBxclptTiN6Nk1rcGo0Tml0NkprVVYydTFoN1BFdG15Q0FOY2tGUmlnejV4Q3N4S2RQcXJabU4iXX0",\n      "threadId": "1d1ae534-af16-493e-8e4b-0a28b21554d4",\n      "connectionType": [\n        "mediator"\n      ]\n    },\n    "metadata": {},\n    "id": "f41e4161-1da7-440a-8234-e91b293cc1b2",\n    "createdAt": "2022-09-28T18:44:53.609Z",\n    "did": "did:peer:1zQmc7pXD4vikj1i3XCrfg9Euwo2HHrfo84x5ysUQzcJGiWQ",\n    "invitationDid": "did:peer:2.SeyJzIjoiaHR0cHM6Ly9wcm92ZW4ubWVkaWF0b3IuaW5kaWNpb3RlY2guaW8iLCJ0IjoiZGlkLWNvbW11bmljYXRpb24iLCJwcmlvcml0eSI6MCwicmVjaXBpZW50S2V5cyI6WyJkaWQ6a2V5Ono2TWtwajROaXQ2SmtVVjJ1MWg3UEV0bXlDQU5ja0ZSaWd6NXhDc3hLZFBxclptTiN6Nk1rcGo0Tml0NkprVVYydTFoN1BFdG15Q0FOY2tGUmlnejV4Q3N4S2RQcXJabU4iXX0",\n    "theirLabel": "Indicio Proven Mediator",\n    "state": "completed",\n    "role": "requester",\n    "autoAcceptConnection": true,\n    "threadId": "1d1ae534-af16-493e-8e4b-0a28b21554d4",\n    "protocol": "https://didcomm.org/connections/1.0",\n    "outOfBandId": "404290b8-8158-40c2-a944-3a8ff72d87cd",\n    "theirDid": "did:peer:1zQmVYBg2PY3H8oeYrzfwvBS5258yA6PULrrhcBERLLZ46oz"\n  }\n}'
2022-09-28 12:44:54.207799-0600 ariesbifold[539:16761] [javascript] DEBUG: Resolving services for connection theirDid did:peer:1zQmVYBg2PY3H8oeYrzfwvBS5258yA6PULrrhcBERLLZ46oz.
2022-09-28 12:44:54.207822-0600 ariesbifold[539:16761] [javascript] DEBUG: resolving didUrl did:peer:1zQmVYBg2PY3H8oeYrzfwvBS5258yA6PULrrhcBERLLZ46oz
2022-09-28 12:44:54.210807-0600 ariesbifold[539:16761] [javascript] 'DEBUG: Retrieved 1 services for message to connection \'f41e4161-1da7-440a-8234-e91b293cc1b2\'(Indicio Proven Mediator)\'', '{\n  "hasQueueService": false\n}'
2022-09-28 12:44:54.210835-0600 ariesbifold[539:16761] [javascript] DEBUG: resolving didUrl did:peer:1zQmc7pXD4vikj1i3XCrfg9Euwo2HHrfo84x5ysUQzcJGiWQ
2022-09-28 12:44:54.213444-0600 ariesbifold[539:16761] [javascript] 'DEBUG: Sending outbound message to service:', '{\n  "messageId": "934876c8-820f-4310-a689-efcf5786994e",\n  "service": {\n    "id": "#indy1",\n    "recipientKeys": "omitted...",\n    "routingKeys": "omitted...",\n    "serviceEndpoint": "wss://proven.mediator.indiciotech.io"\n  }\n}'
2022-09-28 12:44:54.215289-0600 ariesbifold[539:16761] [javascript] DEBUG: Pack outbound message https://didcomm.org/coordinate-mediation/1.0/mediate-request
2022-09-28 12:44:54.217655-0600 ariesbifold[539:16761] [javascript] 'DEBUG: Sending outbound message to endpoint \'wss://proven.mediator.indiciotech.io\' over WebSocket transport.', '{\n  "payload": {\n    "protected": "eyJlbmMiOiJ4Y2hhY2hhMjBwb2x5MTMwNV9pZXRmIiwidHlwIjoiSldNLzEuMCIsImFsZyI6IkF1dGhjcnlwdCIsInJlY2lwaWVudHMiOlt7ImVuY3J5cHRlZF9rZXkiOiJBTmE0QlZPU3dxMmFLdEU1MVFIdzJQVDBvWXVRemFQa2RCWGpNaG1pWWN1T0h0Szd1ZlI3Y1d0YnFCQ2hRUUc1IiwiaGVhZGVyIjp7ImtpZCI6IjMzZHNNWjU4UUFwaTFINldNZUNNcUtHeHphVm9vRnpCbVFyWjFvVFBodlk1IiwiaXYiOiJCS2tDQWFVOWVGWjJqY1dObkwxQ1RQZFpHR0V2cWRKUCIsInNlbmRlciI6InhwZ2YyYTJ6NEp3TGc0Z0xxZEFSZHU0ZGpycWpIYXdkM3RlNFZjMWFQaEVXMVFxWGpoeFB4QXQyY3ZuN3diNk5vR2QwY2pOdXl6SEUyWjRaQjlLV3RYMjNkZkl0YjBreGFHZkVDQW9iR2VUM3RyU1V3dHF2WG1Jb1Zwaz0ifX1dfQ==",\n    "iv": "1CbjpKeNMI9m-n5W",\n    "ciphertext": "gVpbfTPRumyrCFAYM63dB_KPKgRDaMee_7JcRuD_i7Zj1enJwnHXtJq1EJSUfDUsruuxuR7rO2Qjkt2Bj5KS4CnxMyrvsDKgDJPQZkYfsBpu8htSITT9HJVPfnbLnijJNS3Sn9wdjnFDJuW2RUNQYMYqRuERKZcXGxXYY0Vp1ncSUERitfmqXzktu_Q9pn4nqwFvETdRU-NV8ZeXTuQXm4HjxzdexESzucQFWzLu3M7R",\n    "tag": "p9Isvvf-YRHB0SsUsoL-5Q=="\n  }\n}'
2022-09-28 12:44:54.218007-0600 ariesbifold[539:16761] [javascript] DEBUG: Connecting to WebSocket wss://proven.mediator.indiciotech.io
2022-09-28 12:44:54.218625-0600 ariesbifold[539:16483] [native] SocketRocket: In debug mode.  Allowing connection to any root cert
2022-09-28 12:44:54.282435-0600 ariesbifold[539:16761] [javascript] DEBUG: No response received.
2022-09-28 12:44:54.563614-0600 ariesbifold[539:16761] [javascript] DEBUG: Successfully connected to WebSocket wss://proven.mediator.indiciotech.io
2022-09-28 12:44:54.676179-0600 ariesbifold[539:16761] [javascript] 'TRACE: WebSocket message event received.', '{\n  "url": "wss://proven.mediator.indiciotech.io"\n}'
2022-09-28 12:44:54.677893-0600 ariesbifold[539:16761] [javascript] 'DEBUG: Payload received from mediator:', '{\n  "protected": "eyJlbmMiOiJ4Y2hhY2hhMjBwb2x5MTMwNV9pZXRmIiwidHlwIjoiSldNLzEuMCIsImFsZyI6IkF1dGhjcnlwdCIsInJlY2lwaWVudHMiOlt7ImVuY3J5cHRlZF9rZXkiOiI3OUR0ZWFYT19qbFlsWjl4Q3owT3lFeUk3cC1CSGRWVXpZTmFiUV9mbS1tV1lIZHVwUzNiS3VGZ1hlZ0ZRZ29DIiwiaGVhZGVyIjp7ImtpZCI6Ikd4SGt3ZGF6aXA1RkxSNHdXNFZvemNNZ3JMZG56eVRyY2lNazdKYXhTSzZ0IiwiaXYiOiJLQ3pBMGR1N0lqcUpueW9neUZZZE14czFpN2VfeGNzWCIsInNlbmRlciI6IkNILWtmMTg3eVFPUDF3MWVJTFB2SGh1VjZ3VE11QjZZZkh2eU5JazM0RmVhYVBCZDh6M25WWWUxMHBOQmt0LVZJaW4ybFg5dVRPcE44X3RhNjlwVEoxRExmU1RRVzZxend0Z1EwWWE3MVZaVGl1MEFLbVlGSGszOVM3MD0ifX1dfQ==",\n  "iv": "_6EfYgh3r5ghGmAm",\n  "ciphertext": "jQE2gQIaH141GZjj5gdpp29cxbHjD16pKz4LhWu4n1WLZ0XOhqLVCSh8aAtybroXunY2hNts5p4tVUmrX27nOAgG7lD2VGN_1HahNrkGR5rXD8Gv7yEi4fOkTgKJkBBhPXgTEwjGSclcFM2rmOdYXL2REZVjUrwnHTkWwb065WJAOAiNKzktlXr8usHx2xufTBobHI2P7M3qAoVLprTVn_V_5mp1sTszjDcgLKJGQ7qpU4JxQ0nBqrNXank4mPU1JNp3pBPdZCgtUE_V-NQ52T0ZdafkWP0RMllwYNlYEqbx10dk30I68Lcn-CSZ872ZV6qjDNEKcKh-GXqdVKU=",\n  "tag": "OchIp_HHgOqaXEpQ1c-Z9w=="\n}'
2022-09-28 12:44:54.678445-0600 ariesbifold[539:16761] [javascript] DEBUG: Agent John Doe received message
2022-09-28 12:44:54.699813-0600 ariesbifold[539:16761] [javascript] 'INFO: Received message with type \'did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/coordinate-mediation/1.0/mediate-grant\', recipient key z6MkvQYoXsqS4MZiSuueBdTeqhugfuueQriDJjGfwaYyMXtG and sender key z6MkgVtuwoKZjiKB7mwD3DACgQpxp9mfD9EYTRmUr5RQd9KT', '{\n  "@type": "did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/coordinate-mediation/1.0/mediate-grant",\n  "@id": "0ae5d90b-6a48-4e6e-b3d3-5521826e6880",\n  "endpoint": "https://proven.mediator.indiciotech.io",\n  "routing_keys": [\n    "2DAB6MSevnqcsfh32H8AkvPHpssVf7ZytRVG98SuvWR5"\n  ]\n}'
2022-09-28 12:44:54.727736-0600 ariesbifold[539:16761] [javascript] DEBUG: Mediation granted, setting as default mediator
2022-09-28 12:44:54.732127-0600 ariesbifold[539:16761] [javascript] DEBUG: Default mediator set
2022-09-28 12:44:54.732378-0600 ariesbifold[539:16761] [javascript] DEBUG: Mediator routing record not loaded yet, retrieving from storage
2022-09-28 12:44:54.738030-0600 ariesbifold[539:16761] [javascript] DEBUG: Mediator routing record does not exist yet, creating routing keys and record
2022-09-28 12:44:54.744448-0600 ariesbifold[539:16761] [javascript] INFO: Starting implicit pickup of messages from mediator 'e760f186-2b7f-4036-98ef-590a3572a189'
2022-09-28 12:44:54.747925-0600 ariesbifold[539:16761] [javascript] DEBUG: resolving didUrl did:peer:1zQmVYBg2PY3H8oeYrzfwvBS5258yA6PULrrhcBERLLZ46oz
2022-09-28 12:44:54.751306-0600 ariesbifold[539:16761] [javascript] 'DEBUG: Send outbound message', '{\n  "message": {\n    "@type": "https://didcomm.org/trust_ping/1.0/ping",\n    "response_requested": false,\n    "@id": "ae9e06aa-e3ca-4561-abf5-0e15d81cffdf"\n  },\n  "connectionId": "f41e4161-1da7-440a-8234-e91b293cc1b2"\n}'
2022-09-28 12:44:54.751730-0600 ariesbifold[539:16761] [javascript] 'DEBUG: Retrieving services for connection \'f41e4161-1da7-440a-8234-e91b293cc1b2\' (Indicio Proven Mediator)', '{\n  "transportPriority": {\n    "schemes": [\n      "ws",\n      "wss"\n    ],\n    "restrictive": true\n  },\n  "connection": {\n    "_tags": {\n      "did": "did:peer:1zQmc7pXD4vikj1i3XCrfg9Euwo2HHrfo84x5ysUQzcJGiWQ",\n      "role": "requester",\n      "theirDid": "did:peer:1zQmVYBg2PY3H8oeYrzfwvBS5258yA6PULrrhcBERLLZ46oz",\n      "connectionType": [\n        "mediator"\n      ],\n      "state": "completed",\n      "invitationDid": "did:peer:2.SeyJzIjoiaHR0cHM6Ly9wcm92ZW4ubWVkaWF0b3IuaW5kaWNpb3RlY2guaW8iLCJ0IjoiZGlkLWNvbW11bmljYXRpb24iLCJwcmlvcml0eSI6MCwicmVjaXBpZW50S2V5cyI6WyJkaWQ6a2V5Ono2TWtwajROaXQ2SmtVVjJ1MWg3UEV0bXlDQU5ja0ZSaWd6NXhDc3hLZFBxclptTiN6Nk1rcGo0Tml0NkprVVYydTFoN1BFdG15Q0FOY2tGUmlnejV4Q3N4S2RQcXJabU4iXX0",\n      "threadId": "1d1ae534-af16-493e-8e4b-0a28b21554d4",\n      "outOfBandId": "404290b8-8158-40c2-a944-3a8ff72d87cd"\n    },\n    "metadata": {\n      "_internal/useDidKeysForProtocol": {\n        "https://didcomm.org/coordinate-mediation/1.0": false\n      }\n    },\n    "id": "f41e4161-1da7-440a-8234-e91b293cc1b2",\n    "createdAt": "2022-09-28T18:44:53.609Z",\n    "did": "did:peer:1zQmc7pXD4vikj1i3XCrfg9Euwo2HHrfo84x5ysUQzcJGiWQ",\n    "invitationDid": "did:peer:2.SeyJzIjoiaHR0cHM6Ly9wcm92ZW4ubWVkaWF0b3IuaW5kaWNpb3RlY2guaW8iLCJ0IjoiZGlkLWNvbW11bmljYXRpb24iLCJwcmlvcml0eSI6MCwicmVjaXBpZW50S2V5cyI6WyJkaWQ6a2V5Ono2TWtwajROaXQ2SmtVVjJ1MWg3UEV0bXlDQU5ja0ZSaWd6NXhDc3hLZFBxclptTiN6Nk1rcGo0Tml0NkprVVYydTFoN1BFdG15Q0FOY2tGUmlnejV4Q3N4S2RQcXJabU4iXX0",\n    "theirLabel": "Indicio Proven Mediator",\n    "state": "completed",\n    "role": "requester",\n    "autoAcceptConnection": true,\n    "threadId": "1d1ae534-af16-493e-8e4b-0a28b21554d4",\n    "protocol": "https://didcomm.org/connections/1.0",\n    "outOfBandId": "404290b8-8158-40c2-a944-3a8ff72d87cd",\n    "theirDid": "did:peer:1zQmVYBg2PY3H8oeYrzfwvBS5258yA6PULrrhcBERLLZ46oz"\n  }\n}'
2022-09-28 12:44:54.751946-0600 ariesbifold[539:16761] [javascript] DEBUG: Resolving services for connection theirDid did:peer:1zQmVYBg2PY3H8oeYrzfwvBS5258yA6PULrrhcBERLLZ46oz.
2022-09-28 12:44:54.751969-0600 ariesbifold[539:16761] [javascript] DEBUG: resolving didUrl did:peer:1zQmVYBg2PY3H8oeYrzfwvBS5258yA6PULrrhcBERLLZ46oz
2022-09-28 12:44:54.755067-0600 ariesbifold[539:16761] [javascript] 'DEBUG: Retrieved 1 services for message to connection \'f41e4161-1da7-440a-8234-e91b293cc1b2\'(Indicio Proven Mediator)\'', '{\n  "hasQueueService": false\n}'
2022-09-28 12:44:54.755095-0600 ariesbifold[539:16761] [javascript] DEBUG: resolving didUrl did:peer:1zQmc7pXD4vikj1i3XCrfg9Euwo2HHrfo84x5ysUQzcJGiWQ
2022-09-28 12:44:54.757923-0600 ariesbifold[539:16761] [javascript] 'DEBUG: Sending outbound message to service:', '{\n  "messageId": "ae9e06aa-e3ca-4561-abf5-0e15d81cffdf",\n  "service": {\n    "id": "#indy1",\n    "recipientKeys": "omitted...",\n    "routingKeys": "omitted...",\n    "serviceEndpoint": "wss://proven.mediator.indiciotech.io"\n  }\n}'
2022-09-28 12:44:54.759529-0600 ariesbifold[539:16761] [javascript] DEBUG: Pack outbound message https://didcomm.org/trust_ping/1.0/ping
2022-09-28 12:44:54.762351-0600 ariesbifold[539:16761] [javascript] 'DEBUG: Sending outbound message to endpoint \'wss://proven.mediator.indiciotech.io\' over WebSocket transport.', '{\n  "payload": {\n    "protected": "eyJlbmMiOiJ4Y2hhY2hhMjBwb2x5MTMwNV9pZXRmIiwidHlwIjoiSldNLzEuMCIsImFsZyI6IkF1dGhjcnlwdCIsInJlY2lwaWVudHMiOlt7ImVuY3J5cHRlZF9rZXkiOiI2Q01CWDZtYVhTdEU4bGQ1YlRXR09WRmI0ZHhUbGtabkdpVmJoWHF6YVZKVC1ndy05ZnRhSTVqV2wtakFfUVRZIiwiaGVhZGVyIjp7ImtpZCI6IjMzZHNNWjU4UUFwaTFINldNZUNNcUtHeHphVm9vRnpCbVFyWjFvVFBodlk1IiwiaXYiOiJKNnNOemtPRzEtS2pTRW80NlAxUEtUcXBOQzJiM3otcCIsInNlbmRlciI6IjFuQ3RZX1UxRlVVRl9fTDRSWVZDWmJNdk1lMVNUOExQeVNGZXhfV2U5MXVTWDV0NUo0UUZscy03LWVXOHFwbGZCT1lwQ2ZWZ2Y1NE9SaTR2WTBKbWMxNzVvaWZ4bTJCYnVVTHZscjJtTjhmSTVvMHpIdklfaUNlMy1IUT0ifX1dfQ==",\n    "iv": "NRYbPxy-24cOx4Gn",\n    "ciphertext": "ABp_4mSTfY0DMtDleY1JeZowp6ivhpBWvNzI6jJgq8pSTEZls6KKMRj-ySPUkmtDiDz5XJvZyFQrcT-gfM2MrhroOd6jxQCWiPTGrwBHUjxwfxegmGUoZrlgaTHadhQoQutMpe9YqhH3gRWEAUEtTsXJ_huOeYCWz1L--dyWj4QF8EU9Ztmx05wCXFAOVPkh2qKSBOKM5EaGavydFki1",\n    "tag": "1vk-X_p4P1XnavI7nPBwvg=="\n  }\n}'
2022-09-28 12:44:54.892836-0600 ariesbifold[539:16761] [javascript] DEBUG: Finished connection to pool: SovrinMainNet
2022-09-28 12:44:54.892860-0600 ariesbifold[539:16761] [javascript] DEBUG: Connecting to pool: IndicioMainNet
2022-09-28 12:44:54.895278-0600 ariesbifold[539:16761] [javascript] 'DEBUG: Connecting to ledger pool \'IndicioMainNet\'', '{\n  "genesisPath": "/private/var/mobile/Containers/Data/Application/4146589A-BA1C-4219-BF67-23B8F13DF631/tmp//afj/genesis-IndicioMainNet.txn"\n}'
2022-09-28 12:44:54.899370-0600 ariesbifold[539:16761] [javascript] 'DEBUG: Pool \'IndicioMainNet\' does not exist yet, creating.', '{\n  "indyError": "PoolLedgerNotCreatedError"\n}'
2022-09-28 12:44:56.095254-0600 ariesbifold[539:16761] [javascript] DEBUG: Finished connection to pool: IndicioMainNet
2022-09-28 12:44:56.095380-0600 ariesbifold[539:16761] [javascript] DEBUG: Connecting to pool: SovrinStagingNet
2022-09-28 12:44:56.178691-0600 ariesbifold[539:16761] [javascript] 'DEBUG: Connecting to ledger pool \'SovrinStagingNet\'', '{\n  "genesisPath": "/private/var/mobile/Containers/Data/Application/4146589A-BA1C-4219-BF67-23B8F13DF631/tmp//afj/genesis-SovrinStagingNet.txn"\n}'
2022-09-28 12:44:56.183113-0600 ariesbifold[539:16761] [javascript] 'DEBUG: Pool \'SovrinStagingNet\' does not exist yet, creating.', '{\n  "indyError": "PoolLedgerNotCreatedError"\n}'
2022-09-28 12:44:57.667082-0600 ariesbifold[539:16761] [javascript] DEBUG: Finished connection to pool: SovrinStagingNet
2022-09-28 12:44:57.667130-0600 ariesbifold[539:16761] [javascript] DEBUG: Connecting to pool: IndicioDemoNet
2022-09-28 12:44:57.672258-0600 ariesbifold[539:16761] [javascript] 'DEBUG: Connecting to ledger pool \'IndicioDemoNet\'', '{\n  "genesisPath": "/private/var/mobile/Containers/Data/Application/4146589A-BA1C-4219-BF67-23B8F13DF631/tmp//afj/genesis-IndicioDemoNet.txn"\n}'
2022-09-28 12:44:57.680714-0600 ariesbifold[539:16761] [javascript] 'DEBUG: Pool \'IndicioDemoNet\' does not exist yet, creating.', '{\n  "indyError": "PoolLedgerNotCreatedError"\n}'
2022-09-28 12:44:58.163827-0600 ariesbifold[539:16761] [javascript] DEBUG: Finished connection to pool: IndicioDemoNet
2022-09-28 12:44:58.163980-0600 ariesbifold[539:16761] [javascript] DEBUG: Connecting to pool: IndicioTestNet
2022-09-28 12:44:58.176592-0600 ariesbifold[539:16761] [javascript] 'DEBUG: Connecting to ledger pool \'IndicioTestNet\'', '{\n  "genesisPath": "/private/var/mobile/Containers/Data/Application/4146589A-BA1C-4219-BF67-23B8F13DF631/tmp//afj/genesis-IndicioTestNet.txn"\n}'
2022-09-28 12:44:58.189350-0600 ariesbifold[539:16761] [javascript] 'DEBUG: Pool \'IndicioTestNet\' does not exist yet, creating.', '{\n  "indyError": "PoolLedgerNotCreatedError"\n}'
2022-09-28 12:45:15.715303-0600 ariesbifold[539:16483] [Snapshotting] Snapshotting a view (0x10b013800, UIKeyboardImpl) that is not in a visible window requires afterScreenUpdates:YES.
dyld4 config: DYLD_LIBRARY_PATH=/usr/lib/system/introspection DYLD_INSERT_LIBRARIES=/Developer/usr/lib/libBacktraceRecording.dylib:/Developer/usr/lib/libMainThreadChecker.dylib:/Developer/Library/PrivateFrameworks/DTDDISupport.framework/libViewDebuggerSupport.dylib
Bad file descriptor (/Users/beri/Developer/work/hyperledger/libindy-pod/Pods/libzmq/src/tcp_connecter.cpp:403)
(lldb) 
Crash Logs
Incident Identifier: 95D51872-CBA9-41E9-84DD-4EA6653A8C7F
Hardware Model:      iPhone14,3
Process:             ariesbifold [15075]
Path:                /private/var/containers/Bundle/Application/CCFF75AB-E3CA-4761-9BBF-26737C0B4568/ariesbifold.app/ariesbifold
Identifier:          
Version:             1.2.0 (17)
AppStoreTools:       14A305
AppVariant:          1:iPhone14,3:16
Beta:                YES
Code Type:           ARM-64 (Native)
Role:                Non UI
Parent Process:      launchd [1]
Coalition:            [1778]

Date/Time:           2022-09-28 16:47:11.9975 -0600
Launch Time:         2022-09-28 16:45:15.8568 -0600
OS Version:          iPhone OS 16.0 (20A362)
Release Type:        User
Baseband Version:    2.09.01
Report Version:      104

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Triggered by Thread:  21


Thread 0 name:
Thread 0:
0   libsystem_kernel.dylib        	0x00000001cbc2fb48 mach_msg2_trap + 8
1   libsystem_kernel.dylib        	0x00000001cbc42008 mach_msg2_internal + 80 (mach_msg.c:201)
2   libsystem_kernel.dylib        	0x00000001cbc42248 mach_msg_overwrite + 388 (mach_msg.c:0)
3   libsystem_kernel.dylib        	0x00000001cbc3008c mach_msg + 24 (mach_msg.c:323)
4   QuartzCore                    	0x0000000190cfc16c CA::Display::DisplayTimingsControl::update_frame_interval_request() + 404 (CARenderServicesUser.c:13411)
5   QuartzCore                    	0x0000000190cfbdc0 CA::Display::DisplayTimingsControl::register_frame_interval_range(CAFrameIntervalRange) + 84 (CADisplay.mm:1506)
6   QuartzCore                    	0x0000000190d7b348 CA::DynamicFrameRateSource::set_preferred_fps_range(CAFrameRateRange, bool) + 404 (CADisplay.mm:7152)
7   UIKitCore                     	0x0000000192361cd8 schedulerStepScheduling + 328 (_UIUpdateScheduler.m:387)
8   UIKitCore                     	0x0000000192361ad0 runloopSourceCallback + 92 (_UIUpdateScheduler.m:1079)
9   CoreFoundation                	0x000000018f61a22c __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 28 (CFRunLoop.c:1974)
10  CoreFoundation                	0x000000018f626614 __CFRunLoopDoSource0 + 176 (CFRunLoop.c:2018)
11  CoreFoundation                	0x000000018f5aa51c __CFRunLoopDoSources0 + 244 (CFRunLoop.c:2055)
12  CoreFoundation                	0x000000018f5bfeb8 __CFRunLoopRun + 836 (CFRunLoop.c:2970)
13  CoreFoundation                	0x000000018f5c51e4 CFRunLoopRunSpecific + 612 (CFRunLoop.c:3390)
14  GraphicsServices              	0x00000001c83e5368 GSEventRunModal + 164 (GSEvent.c:2196)
15  UIKitCore                     	0x0000000191a74d88 -[UIApplication _run] + 888 (UIApplication.m:3726)
16  UIKitCore                     	0x0000000191a749ec UIApplicationMain + 340 (UIApplication.m:5316)
17  ariesbifold                   	0x0000000104c177fc main + 272 (main.m:35)
18  dyld                          	0x00000001ad8e9948 start + 2504 (dyldMain.cpp:1168)

Thread 1 name:
Thread 1:
0   libsystem_kernel.dylib        	0x00000001cbc2fb48 mach_msg2_trap + 8
1   libsystem_kernel.dylib        	0x00000001cbc42008 mach_msg2_internal + 80 (mach_msg.c:201)
2   libsystem_kernel.dylib        	0x00000001cbc42248 mach_msg_overwrite + 388 (mach_msg.c:0)
3   libsystem_kernel.dylib        	0x00000001cbc3008c mach_msg + 24 (mach_msg.c:323)
4   CoreFoundation                	0x000000018f5bee00 __CFRunLoopServiceMachPort + 160 (CFRunLoop.c:2639)
5   CoreFoundation                	0x000000018f5c0044 __CFRunLoopRun + 1232 (CFRunLoop.c:3022)
6   CoreFoundation                	0x000000018f5c51e4 CFRunLoopRunSpecific + 612 (CFRunLoop.c:3390)
7   Foundation                    	0x00000001899cd818 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 212 (NSRunLoop.m:373)
8   Foundation                    	0x00000001899cd700 -[NSRunLoop(NSRunLoop) runUntilDate:] + 64 (NSRunLoop.m:420)
9   UIKitCore                     	0x0000000191ba988c -[UIEventFetcher threadMain] + 436 (UIEventFetcher.m:1212)
10  Foundation                    	0x00000001899e6ce8 __NSThread__start__ + 716 (NSThread.m:968)
11  libsystem_pthread.dylib       	0x00000001dbe6d6cc _pthread_start + 148 (pthread.c:893)
12  libsystem_pthread.dylib       	0x00000001dbe6cba4 thread_start + 8

Thread 2 name:
Thread 2:
0   libsystem_kernel.dylib        	0x00000001cbc2fb48 mach_msg2_trap + 8
1   libsystem_kernel.dylib        	0x00000001cbc42008 mach_msg2_internal + 80 (mach_msg.c:201)
2   libsystem_kernel.dylib        	0x00000001cbc42248 mach_msg_overwrite + 388 (mach_msg.c:0)
3   libsystem_kernel.dylib        	0x00000001cbc3008c mach_msg + 24 (mach_msg.c:323)
4   CoreFoundation                	0x000000018f5bee00 __CFRunLoopServiceMachPort + 160 (CFRunLoop.c:2639)
5   CoreFoundation                	0x000000018f5c0044 __CFRunLoopRun + 1232 (CFRunLoop.c:3022)
6   CoreFoundation                	0x000000018f5c51e4 CFRunLoopRunSpecific + 612 (CFRunLoop.c:3390)
7   ariesbifold                   	0x0000000104d7c764 +[RCTCxxBridge runRunLoop] + 264 (RCTCxxBridge.mm:335)
8   Foundation                    	0x00000001899e6ce8 __NSThread__start__ + 716 (NSThread.m:968)
9   libsystem_pthread.dylib       	0x00000001dbe6d6cc _pthread_start + 148 (pthread.c:893)
10  libsystem_pthread.dylib       	0x00000001dbe6cba4 thread_start + 8

Thread 3 name:
Thread 3:
0   libsystem_kernel.dylib        	0x00000001cbc3041c __psynch_cvwait + 8
1   libsystem_pthread.dylib       	0x00000001dbe7406c _pthread_cond_wait + 1232 (pthread_cond.c:636)
2   libc++.1.dylib                	0x000000019d8eeacc std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 28 (__threading_support:380)
3   hermes                        	0x00000001064355ac 0x106318000 + 1168812
4   hermes                        	0x0000000106435360 0x106318000 + 1168224
5   libsystem_pthread.dylib       	0x00000001dbe6d6cc _pthread_start + 148 (pthread.c:893)
6   libsystem_pthread.dylib       	0x00000001dbe6cba4 thread_start + 8

Thread 4 name:
Thread 4:
0   libsystem_kernel.dylib        	0x00000001cbc3041c __psynch_cvwait + 8
1   libsystem_pthread.dylib       	0x00000001dbe7406c _pthread_cond_wait + 1232 (pthread_cond.c:636)
2   libc++.1.dylib                	0x000000019d8eeacc std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 28 (__threading_support:380)
3   ariesbifold                   	0x0000000104e8d3d8 void std::__1::condition_variable::wait<facebook::hermes::inspector::detail::SerialExecutor::runLoop()::$_1>(std::__1::unique_lock<std::__1::mutex>&, facebook::hermes::inspector::detail::SerialExec... + 28 (__mutex_base:404)
4   ariesbifold                   	0x0000000104e8d3d8 facebook::hermes::inspector::detail::SerialExecutor::runLoop() + 120 (SerialExecutor.cpp:41)
5   ariesbifold                   	0x0000000104e51ea0 decltype(static_cast<void (*>(fp)(static_cast<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >>(fp0), static_cast<std::__1::function<void ()>>(fp0))) std::__1::... + 52 (type_traits:3918)
6   ariesbifold                   	0x0000000104e51ea0 void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (*)(std::__1::basic_string<char, std::__1::char_traits<ch... + 56 (thread:287)
7   ariesbifold                   	0x0000000104e51ea0 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (*)(std::__1::basic_string<char, std::__1:... + 116 (thread:298)
8   libsystem_pthread.dylib       	0x00000001dbe6d6cc _pthread_start + 148 (pthread.c:893)
9   libsystem_pthread.dylib       	0x00000001dbe6cba4 thread_start + 8

Thread 5 name:
Thread 5:
0   libsystem_kernel.dylib        	0x00000001cbc3041c __psynch_cvwait + 8
1   libsystem_pthread.dylib       	0x00000001dbe7406c _pthread_cond_wait + 1232 (pthread_cond.c:636)
2   libc++.1.dylib                	0x000000019d8eeacc std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 28 (__threading_support:380)
3   ariesbifold                   	0x0000000104e8d3d8 void std::__1::condition_variable::wait<facebook::hermes::inspector::detail::SerialExecutor::runLoop()::$_1>(std::__1::unique_lock<std::__1::mutex>&, facebook::hermes::inspector::detail::SerialExec... + 28 (__mutex_base:404)
4   ariesbifold                   	0x0000000104e8d3d8 facebook::hermes::inspector::detail::SerialExecutor::runLoop() + 120 (SerialExecutor.cpp:41)
5   ariesbifold                   	0x0000000104e51ea0 decltype(static_cast<void (*>(fp)(static_cast<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >>(fp0), static_cast<std::__1::function<void ()>>(fp0))) std::__1::... + 52 (type_traits:3918)
6   ariesbifold                   	0x0000000104e51ea0 void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (*)(std::__1::basic_string<char, std::__1::char_traits<ch... + 56 (thread:287)
7   ariesbifold                   	0x0000000104e51ea0 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (*)(std::__1::basic_string<char, std::__1:... + 116 (thread:298)
8   libsystem_pthread.dylib       	0x00000001dbe6d6cc _pthread_start + 148 (pthread.c:893)
9   libsystem_pthread.dylib       	0x00000001dbe6cba4 thread_start + 8

Thread 6 name:
Thread 6:
0   libsystem_kernel.dylib        	0x00000001cbc3041c __psynch_cvwait + 8
1   libsystem_pthread.dylib       	0x00000001dbe7406c _pthread_cond_wait + 1232 (pthread_cond.c:636)
2   libc++.1.dylib                	0x000000019d8eeacc std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 28 (__threading_support:380)
3   hermes                        	0x00000001064355ac 0x106318000 + 1168812
4   hermes                        	0x0000000106435360 0x106318000 + 1168224
5   libsystem_pthread.dylib       	0x00000001dbe6d6cc _pthread_start + 148 (pthread.c:893)
6   libsystem_pthread.dylib       	0x00000001dbe6cba4 thread_start + 8

Thread 7 name:
Thread 7:
0   libsystem_kernel.dylib        	0x00000001cbc3041c __psynch_cvwait + 8
1   libsystem_pthread.dylib       	0x00000001dbe7406c _pthread_cond_wait + 1232 (pthread_cond.c:636)
2   libc++.1.dylib                	0x000000019d8eeacc std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 28 (__threading_support:380)
3   hermes                        	0x00000001064355ac 0x106318000 + 1168812
4   hermes                        	0x0000000106435360 0x106318000 + 1168224
5   libsystem_pthread.dylib       	0x00000001dbe6d6cc _pthread_start + 148 (pthread.c:893)
6   libsystem_pthread.dylib       	0x00000001dbe6cba4 thread_start + 8

Thread 8 name:
Thread 8:
0   libobjc.A.dylib               	0x0000000188905d74 objc_opt_isKindOfClass + 80 (objc-runtime-new.h:2155)
1   RunningBoardServices          	0x000000019c8fe924 _BSXPCDecodeObject + 576 (RBSXPCCoder.m:538)
2   RunningBoardServices          	0x000000019c906d4c _BSXPCDecodeObjectForKey + 180 (RBSXPCCoder.m:386)
3   RunningBoardServices          	0x000000019c8fef88 -[RBSInheritance initWithRBSXPCCoder:] + 76 (RBSInheritance.m:98)
4   RunningBoardServices          	0x000000019c8fec64 _BSXPCDecodeObject + 1408 (RBSXPCCoder.m:490)
5   RunningBoardServices          	0x000000019c9088b8 ___BSXPCDecodeObject_block_invoke + 60 (RBSXPCCoder.m:463)
6   libxpc.dylib                  	0x00000001dbeb8c78 xpc_array_apply + 96 (array.c:563)
7   RunningBoardServices          	0x000000019c8fe88c _BSXPCDecodeObject + 424 (RBSXPCCoder.m:461)
8   RunningBoardServices          	0x000000019c906d4c _BSXPCDecodeObjectForKey + 180 (RBSXPCCoder.m:386)
9   RunningBoardServices          	0x000000019c8fe464 -[RBSInheritanceChangeSet initWithRBSXPCCoder:] + 188 (RBSInheritanceChangeSet.m:69)
10  RunningBoardServices          	0x000000019c8fec64 _BSXPCDecodeObject + 1408 (RBSXPCCoder.m:490)
11  RunningBoardServices          	0x000000019c906d4c _BSXPCDecodeObjectForKey + 180 (RBSXPCCoder.m:386)
12  RunningBoardServices          	0x000000019c8fb6b8 -[RBSXPCMessage decodeArgumentCollection:withClass:atIndex:allowNil:error:] + 340 (RBSXPCUtilities.m:362)
13  RunningBoardServices          	0x000000019c8fb08c __32-[RBSConnection _handleMessage:]_block_invoke_2 + 88 (RBSConnection.m:1182)
14  libsystem_trace.dylib         	0x00000001a6001d78 _os_activity_initiate_impl + 64 (activity.c:131)
15  RunningBoardServices          	0x000000019c904110 -[RBSConnection _handleMessage:] + 672 (RBSConnection.m:1182)
16  RunningBoardServices          	0x000000019c924b78 __37-[RBSConnection _lock_setConnection:]_block_invoke + 80 (RBSConnection.m:1302)
17  libxpc.dylib                  	0x00000001dbec118c _xpc_connection_call_event_handler + 152 (connection.c:834)
18  libxpc.dylib                  	0x00000001dbec15bc _xpc_connection_mach_event + 992 (connection.c:1445)
19  libdispatch.dylib             	0x00000001969ca09c _dispatch_client_callout4 + 20 (object.m:600)
20  libdispatch.dylib             	0x00000001969e6830 _dispatch_mach_msg_invoke + 468 (mach.c:2462)
21  libdispatch.dylib             	0x00000001969d156c _dispatch_lane_serial_drain + 376 (inline_internal.h:0)
22  libdispatch.dylib             	0x00000001969e754c _dispatch_mach_invoke + 448 (mach.c:2784)
23  libdispatch.dylib             	0x00000001969d156c _dispatch_lane_serial_drain + 376 (inline_internal.h:0)
24  libdispatch.dylib             	0x00000001969d2214 _dispatch_lane_invoke + 436 (queue.c:3940)
25  libdispatch.dylib             	0x00000001969dce10 _dispatch_workloop_worker_thread + 652 (queue.c:6846)
26  libsystem_pthread.dylib       	0x00000001dbe6cdf8 _pthread_wqthread + 288 (pthread.c:2618)
27  libsystem_pthread.dylib       	0x00000001dbe6cb98 start_wqthread + 8

Thread 9 name:
Thread 9:
0   libsystem_kernel.dylib        	0x00000001cbc3041c __psynch_cvwait + 8
1   libsystem_pthread.dylib       	0x00000001dbe7406c _pthread_cond_wait + 1232 (pthread_cond.c:636)
2   Indy                          	0x000000010855f858 std::thread::park::hbd73935d65c0de25 + 404
3   Indy                          	0x00000001085749b4 std::sync::mpsc::blocking::WaitToken::wait::hda653576325020a7 + 40
4   Indy                          	0x0000000107e0e6f8 indy::commands::CommandExecutor::new::_$u7b$$u7b$closure$u7d$$u7d$::h85f9962696cf09ae + 5808
5   Indy                          	0x0000000108586ca0 __rust_maybe_catch_panic + 40
6   Indy                          	0x0000000107d45d54 core::ops::function::FnOnce::call_once$u7b$$u7b$vtable.shim$u7d$$u7d$::h7eec23b99bcbb200 + 96
7   Indy                          	0x000000010855ee34 _$LT$alloc..boxed..Box$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$A$GT$$GT$::call_once::h348cec35aa383d95 + 76
8   Indy                          	0x0000000108585ee0 std::sys::unix::thread::Thread::new::thread_start::h6bd966c0933e3d06 + 28
9   libsystem_pthread.dylib       	0x00000001dbe6d6cc _pthread_start + 148 (pthread.c:893)
10  libsystem_pthread.dylib       	0x00000001dbe6cba4 thread_start + 8

Thread 10:
0   libsystem_kernel.dylib        	0x00000001cbc30b48 __psynch_mutexwait + 8
1   libsystem_pthread.dylib       	0x00000001dbe6e150 _pthread_mutex_firstfit_lock_wait + 84 (pthread_mutex.c:1414)
2   libsystem_pthread.dylib       	0x00000001dbe75310 _pthread_mutex_firstfit_lock_slow + 248 (pthread_mutex.c:1490)
3   Indy                          	0x0000000108000a68 std::sys_common::backtrace::__rust_begin_short_backtrace::h89d983a2d0e830a4 + 76
4   Indy                          	0x0000000108586ca0 __rust_maybe_catch_panic + 40
5   Indy                          	0x0000000108001144 core::ops::function::FnOnce::call_once$u7b$$u7b$vtable.shim$u7d$$u7d$::h1e54bc5e0194e265 + 96
6   Indy                          	0x000000010855ee34 _$LT$alloc..boxed..Box$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$A$GT$$GT$::call_once::h348cec35aa383d95 + 76
7   Indy                          	0x0000000108585ee0 std::sys::unix::thread::Thread::new::thread_start::h6bd966c0933e3d06 + 28
8   libsystem_pthread.dylib       	0x00000001dbe6d6cc _pthread_start + 148 (pthread.c:893)
9   libsystem_pthread.dylib       	0x00000001dbe6cba4 thread_start + 8

Thread 11:
0   libsystem_kernel.dylib        	0x00000001cbc30b48 __psynch_mutexwait + 8
1   libsystem_pthread.dylib       	0x00000001dbe6e150 _pthread_mutex_firstfit_lock_wait + 84 (pthread_mutex.c:1414)
2   libsystem_pthread.dylib       	0x00000001dbe75310 _pthread_mutex_firstfit_lock_slow + 248 (pthread_mutex.c:1490)
3   Indy                          	0x0000000108000a68 std::sys_common::backtrace::__rust_begin_short_backtrace::h89d983a2d0e830a4 + 76
4   Indy                          	0x0000000108586ca0 __rust_maybe_catch_panic + 40
5   Indy                          	0x0000000108001144 core::ops::function::FnOnce::call_once$u7b$$u7b$vtable.shim$u7d$$u7d$::h1e54bc5e0194e265 + 96
6   Indy                          	0x000000010855ee34 _$LT$alloc..boxed..Box$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$A$GT$$GT$::call_once::h348cec35aa383d95 + 76
7   Indy                          	0x0000000108585ee0 std::sys::unix::thread::Thread::new::thread_start::h6bd966c0933e3d06 + 28
8   libsystem_pthread.dylib       	0x00000001dbe6d6cc _pthread_start + 148 (pthread.c:893)
9   libsystem_pthread.dylib       	0x00000001dbe6cba4 thread_start + 8

Thread 12:
0   libsystem_kernel.dylib        	0x00000001cbc3041c __psynch_cvwait + 8
1   libsystem_pthread.dylib       	0x00000001dbe7406c _pthread_cond_wait + 1232 (pthread_cond.c:636)
2   Indy                          	0x000000010855f858 std::thread::park::hbd73935d65c0de25 + 404
3   Indy                          	0x00000001085749b4 std::sync::mpsc::blocking::WaitToken::wait::hda653576325020a7 + 40
4   Indy                          	0x0000000107ffe7ec std::sync::mpsc::stream::Packet$LT$T$GT$::recv::h6dcd5fd479774857 + 596
5   Indy                          	0x000000010800392c std::sync::mpsc::Receiver$LT$T$GT$::recv::heb15987db5980a5c + 236
6   Indy                          	0x0000000108000a8c std::sys_common::backtrace::__rust_begin_short_backtrace::h89d983a2d0e830a4 + 112
7   Indy                          	0x0000000108586ca0 __rust_maybe_catch_panic + 40
8   Indy                          	0x0000000108001144 core::ops::function::FnOnce::call_once$u7b$$u7b$vtable.shim$u7d$$u7d$::h1e54bc5e0194e265 + 96
9   Indy                          	0x000000010855ee34 _$LT$alloc..boxed..Box$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$A$GT$$GT$::call_once::h348cec35aa383d95 + 76
10  Indy                          	0x0000000108585ee0 std::sys::unix::thread::Thread::new::thread_start::h6bd966c0933e3d06 + 28
11  libsystem_pthread.dylib       	0x00000001dbe6d6cc _pthread_start + 148 (pthread.c:893)
12  libsystem_pthread.dylib       	0x00000001dbe6cba4 thread_start + 8

Thread 13:
0   libsystem_kernel.dylib        	0x00000001cbc30b48 __psynch_mutexwait + 8
1   libsystem_pthread.dylib       	0x00000001dbe6e150 _pthread_mutex_firstfit_lock_wait + 84 (pthread_mutex.c:1414)
2   libsystem_pthread.dylib       	0x00000001dbe75310 _pthread_mutex_firstfit_lock_slow + 248 (pthread_mutex.c:1490)
3   Indy                          	0x0000000108000a68 std::sys_common::backtrace::__rust_begin_short_backtrace::h89d983a2d0e830a4 + 76
4   Indy                          	0x0000000108586ca0 __rust_maybe_catch_panic + 40
5   Indy                          	0x0000000108001144 core::ops::function::FnOnce::call_once$u7b$$u7b$vtable.shim$u7d$$u7d$::h1e54bc5e0194e265 + 96
6   Indy                          	0x000000010855ee34 _$LT$alloc..boxed..Box$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$A$GT$$GT$::call_once::h348cec35aa383d95 + 76
7   Indy                          	0x0000000108585ee0 std::sys::unix::thread::Thread::new::thread_start::h6bd966c0933e3d06 + 28
8   libsystem_pthread.dylib       	0x00000001dbe6d6cc _pthread_start + 148 (pthread.c:893)
9   libsystem_pthread.dylib       	0x00000001dbe6cba4 thread_start + 8

Thread 14:
0   libsystem_kernel.dylib        	0x00000001cbc31480 kevent + 8
1   Indy                          	0x000000010860fd88 zmq::kqueue_t::loop() + 208
2   Indy                          	0x000000010860fc88 zmq::kqueue_t::worker_routine(void*) + 24
3   Indy                          	0x000000010867d2b4 thread_routine(void*) + 284
4   libsystem_pthread.dylib       	0x00000001dbe6d6cc _pthread_start + 148 (pthread.c:893)
5   libsystem_pthread.dylib       	0x00000001dbe6cba4 thread_start + 8

Thread 15:
0   libsystem_kernel.dylib        	0x00000001cbc31480 kevent + 8
1   Indy                          	0x000000010860fd88 zmq::kqueue_t::loop() + 208
2   Indy                          	0x000000010860fc88 zmq::kqueue_t::worker_routine(void*) + 24
3   Indy                          	0x000000010867d2b4 thread_routine(void*) + 284
4   libsystem_pthread.dylib       	0x00000001dbe6d6cc _pthread_start + 148 (pthread.c:893)
5   libsystem_pthread.dylib       	0x00000001dbe6cba4 thread_start + 8

Thread 16:
0   libsystem_kernel.dylib        	0x00000001cbc3322c poll + 8
1   Indy                          	0x00000001086638d8 zmq::socket_poller_t::wait(zmq::socket_poller_t::event_t*, int, long) + 292
2   Indy                          	0x000000010869d830 zmq_poller_wait_all + 160
3   Indy                          	0x000000010869cfd0 zmq_poller_poll(zmq_pollitem_t*, int, long) + 984
4   Indy                          	0x000000010869cbec zmq_poll + 40
5   Indy                          	0x000000010821da44 zmq::poll::h6188ffa9cca7bff0 + 16
6   Indy                          	0x0000000107dd24b4 indy::services::pool::pool::PoolThread$LT$S$C$R$GT$::work::h5b10f452c851850b + 600
7   Indy                          	0x0000000107ddaf1c std::sys_common::backtrace::__rust_begin_short_backtrace::h4554716e94055882 + 128
8   Indy                          	0x0000000107eecd08 std::panicking::try::do_call::h4aef600588ce2d23 + 52
9   Indy                          	0x0000000108586ca0 __rust_maybe_catch_panic + 40
10  Indy                          	0x0000000107d45b44 core::ops::function::FnOnce::call_once$u7b$$u7b$vtable.shim$u7d$$u7d$::h4b1af0ee60c572ec + 132
11  Indy                          	0x000000010855ee34 _$LT$alloc..boxed..Box$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$A$GT$$GT$::call_once::h348cec35aa383d95 + 76
12  Indy                          	0x0000000108585ee0 std::sys::unix::thread::Thread::new::thread_start::h6bd966c0933e3d06 + 28
13  libsystem_pthread.dylib       	0x00000001dbe6d6cc _pthread_start + 148 (pthread.c:893)
14  libsystem_pthread.dylib       	0x00000001dbe6cba4 thread_start + 8

Thread 17:
0   libsystem_kernel.dylib        	0x00000001cbc31480 kevent + 8
1   Indy                          	0x000000010860fd88 zmq::kqueue_t::loop() + 208
2   Indy                          	0x000000010860fc88 zmq::kqueue_t::worker_routine(void*) + 24
3   Indy                          	0x000000010867d2b4 thread_routine(void*) + 284
4   libsystem_pthread.dylib       	0x00000001dbe6d6cc _pthread_start + 148 (pthread.c:893)
5   libsystem_pthread.dylib       	0x00000001dbe6cba4 thread_start + 8

Thread 18:
0   libsystem_kernel.dylib        	0x00000001cbc31480 kevent + 8
1   Indy                          	0x000000010860fd88 zmq::kqueue_t::loop() + 208
2   Indy                          	0x000000010860fc88 zmq::kqueue_t::worker_routine(void*) + 24
3   Indy                          	0x000000010867d2b4 thread_routine(void*) + 284
4   libsystem_pthread.dylib       	0x00000001dbe6d6cc _pthread_start + 148 (pthread.c:893)
5   libsystem_pthread.dylib       	0x00000001dbe6cba4 thread_start + 8

Thread 19 name:
Thread 19:
0   libsystem_kernel.dylib        	0x00000001cbc3322c poll + 8
1   Indy                          	0x0000000108651e84 zmq::signaler_t::wait(int) + 124
2   Indy                          	0x0000000108614048 zmq::mailbox_t::recv(zmq::command_t*, int) + 104
3   Indy                          	0x0000000108654bd0 zmq::socket_base_t::process_commands(int, bool) + 228
4   Indy                          	0x00000001086547dc zmq::socket_base_t::getsockopt(int, void*, unsigned long*) + 596
5   Indy                          	0x0000000108663514 zmq::socket_poller_t::check_events(zmq::socket_poller_t::event_t*, int) + 176
6   Indy                          	0x00000001086639f8 zmq::socket_poller_t::wait(zmq::socket_poller_t::event_t*, int, long) + 580
7   Indy                          	0x000000010869d830 zmq_poller_wait_all + 160
8   Indy                          	0x000000010869cfd0 zmq_poller_poll(zmq_pollitem_t*, int, long) + 984
9   Indy                          	0x000000010869cbec zmq_poll + 40
10  Indy                          	0x000000010821da44 zmq::poll::h6188ffa9cca7bff0 + 16
11  Indy                          	0x0000000107dd24b4 indy::services::pool::pool::PoolThread$LT$S$C$R$GT$::work::h5b10f452c851850b + 600
12  Indy                          	0x0000000107ddaf1c std::sys_common::backtrace::__rust_begin_short_backtrace::h4554716e94055882 + 128
13  Indy                          	0x0000000107eecd08 std::panicking::try::do_call::h4aef600588ce2d23 + 52
14  Indy                          	0x0000000108586ca0 __rust_maybe_catch_panic + 40
15  Indy                          	0x0000000107d45b44 core::ops::function::FnOnce::call_once$u7b$$u7b$vtable.shim$u7d$$u7d$::h4b1af0ee60c572ec + 132
16  Indy                          	0x000000010855ee34 _$LT$alloc..boxed..Box$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$A$GT$$GT$::call_once::h348cec35aa383d95 + 76
17  Indy                          	0x0000000108585ee0 std::sys::unix::thread::Thread::new::thread_start::h6bd966c0933e3d06 + 28
18  libsystem_pthread.dylib       	0x00000001dbe6d6cc _pthread_start + 148 (pthread.c:893)
19  libsystem_pthread.dylib       	0x00000001dbe6cba4 thread_start + 8

Thread 20:
0   libsystem_kernel.dylib        	0x00000001cbc31480 kevent + 8
1   Indy                          	0x000000010860fd88 zmq::kqueue_t::loop() + 208
2   Indy                          	0x000000010860fc88 zmq::kqueue_t::worker_routine(void*) + 24
3   Indy                          	0x000000010867d2b4 thread_routine(void*) + 284
4   libsystem_pthread.dylib       	0x00000001dbe6d6cc _pthread_start + 148 (pthread.c:893)
5   libsystem_pthread.dylib       	0x00000001dbe6cba4 thread_start + 8

Thread 21 Crashed:
0   libsystem_kernel.dylib        	0x00000001cbc36200 __pthread_kill + 8
1   libsystem_pthread.dylib       	0x00000001dbe731ac pthread_kill + 268 (pthread.c:1670)
2   libsystem_c.dylib             	0x0000000196a2dca0 abort + 180 (abort.c:118)
3   Indy                          	0x0000000108605d80 zmq::zmq_abort(char const*) + 24
4   Indy                          	0x000000010867adc4 zmq::tcp_connecter_t::connect() + 312
5   Indy                          	0x000000010867aa94 zmq::tcp_connecter_t::out_event() + 84
6   Indy                          	0x000000010867aa1c zmq::tcp_connecter_t::in_event() + 32
7   Indy                          	0x000000010860fe90 zmq::kqueue_t::loop() + 472
8   Indy                          	0x000000010860fc88 zmq::kqueue_t::worker_routine(void*) + 24
9   Indy                          	0x000000010867d2b4 thread_routine(void*) + 284
10  libsystem_pthread.dylib       	0x00000001dbe6d6cc _pthread_start + 148 (pthread.c:893)
11  libsystem_pthread.dylib       	0x00000001dbe6cba4 thread_start + 8

Thread 22 name:
Thread 22:
0   libsystem_kernel.dylib        	0x00000001cbc2fb48 mach_msg2_trap + 8
1   libsystem_kernel.dylib        	0x00000001cbc42008 mach_msg2_internal + 80 (mach_msg.c:201)
2   libsystem_kernel.dylib        	0x00000001cbc42248 mach_msg_overwrite + 388 (mach_msg.c:0)
3   libsystem_kernel.dylib        	0x00000001cbc3008c mach_msg + 24 (mach_msg.c:323)
4   CoreFoundation                	0x000000018f5bee00 __CFRunLoopServiceMachPort + 160 (CFRunLoop.c:2639)
5   CoreFoundation                	0x000000018f5c0044 __CFRunLoopRun + 1232 (CFRunLoop.c:3022)
6   CoreFoundation                	0x000000018f5c51e4 CFRunLoopRunSpecific + 612 (CFRunLoop.c:3390)
7   CFNetwork                     	0x0000000190913bac +[__CFN_CoreSchedulingSetRunnable _run:] + 392 (CoreSchedulingSet.mm:1372)
8   Foundation                    	0x00000001899e6ce8 __NSThread__start__ + 716 (NSThread.m:968)
9   libsystem_pthread.dylib       	0x00000001dbe6d6cc _pthread_start + 148 (pthread.c:893)
10  libsystem_pthread.dylib       	0x00000001dbe6cba4 thread_start + 8

Thread 23 name:
Thread 23:
0   libsystem_kernel.dylib        	0x00000001cbc2fb48 mach_msg2_trap + 8
1   libsystem_kernel.dylib        	0x00000001cbc42008 mach_msg2_internal + 80 (mach_msg.c:201)
2   libsystem_kernel.dylib        	0x00000001cbc42248 mach_msg_overwrite + 388 (mach_msg.c:0)
3   libsystem_kernel.dylib        	0x00000001cbc3008c mach_msg + 24 (mach_msg.c:323)
4   CoreFoundation                	0x000000018f5bee00 __CFRunLoopServiceMachPort + 160 (CFRunLoop.c:2639)
5   CoreFoundation                	0x000000018f5c0044 __CFRunLoopRun + 1232 (CFRunLoop.c:3022)
6   CoreFoundation                	0x000000018f5c51e4 CFRunLoopRunSpecific + 612 (CFRunLoop.c:3390)
7   Foundation                    	0x00000001899cd818 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 212 (NSRunLoop.m:373)
8   ariesbifold                   	0x0000000104db7934 -[_RCTSRRunLoopThread main] + 300 (RCTSRWebSocket.m:1624)
9   Foundation                    	0x00000001899e6ce8 __NSThread__start__ + 716 (NSThread.m:968)
10  libsystem_pthread.dylib       	0x00000001dbe6d6cc _pthread_start + 148 (pthread.c:893)
11  libsystem_pthread.dylib       	0x00000001dbe6cba4 thread_start + 8

Thread 24 name:
Thread 24:
0   libsystem_kernel.dylib        	0x00000001cbc306ac select$DARWIN_EXTSN + 8
1   CoreFoundation                	0x000000018f60f9d4 __CFSocketManager + 636 (CFSocket.c:1340)
2   libsystem_pthread.dylib       	0x00000001dbe6d6cc _pthread_start + 148 (pthread.c:893)
3   libsystem_pthread.dylib       	0x00000001dbe6cba4 thread_start + 8

Thread 25:
0   libsystem_pthread.dylib       	0x00000001dbe6cb90 start_wqthread + 0

Thread 26:
0   libsystem_pthread.dylib       	0x00000001dbe6cb90 start_wqthread + 0


Thread 21 crashed with ARM Thread State (64-bit):
    x0: 0x0000000000000000   x1: 0x0000000000000000   x2: 0x0000000000000000   x3: 0x0000000000000000
    x4: 0x0000000000000000   x5: 0x0000000000000003   x6: 0x000000000000000a   x7: 0x0000000113023cac
    x8: 0x1564446a5437bb04   x9: 0x1564446b3896cb04  x10: 0x0000000000000002  x11: 0x00000000fffffffd
   x12: 0x0000010000000000  x13: 0x0000000000000000  x14: 0x0000000000000000  x15: 0x0000000000000000
   x16: 0x0000000000000148  x17: 0x000000016ca17000  x18: 0x0000000000000000  x19: 0x0000000000000006
   x20: 0x000000000001671b  x21: 0x000000016ca170e0  x22: 0x0000000000000000  x23: 0x0000000000000000
   x24: 0x0000000000000000  x25: 0x0000000000000000  x26: 0x0000000000000000  x27: 0x0000000000000000
   x28: 0x0000000000000000   fp: 0x000000016ca14cf0   lr: 0x00000001dbe731ac
    sp: 0x000000016ca14cd0   pc: 0x00000001cbc36200 cpsr: 0x40001000
   esr: 0x56000080  Address size fault


Binary Images:
0x104c10000 - 0x105a83fff ariesbifold arm64  <33c850cdaa3a34d381853c9c688dd6be> /private/var/containers/Bundle/Application/CCFF75AB-E3CA-4761-9BBF-26737C0B4568/ariesbifold.app/ariesbifold
0x106318000 - 0x1065e7fff hermes arm64  <c9c3232edb403d1ea35be647a8c12641> /private/var/containers/Bundle/Application/CCFF75AB-E3CA-4761-9BBF-26737C0B4568/ariesbifold.app/Frameworks/hermes.framework/hermes
0x107ba0000 - 0x1089b7fff Indy arm64  <acf8a96893bc3734a05105e72b90583f> /private/var/containers/Bundle/Application/CCFF75AB-E3CA-4761-9BBF-26737C0B4568/ariesbifold.app/Frameworks/Indy.framework/Indy
0x1888fc000 - 0x18893fc3f libobjc.A.dylib arm64e  <b3a78098c0fb3dcdb1ac0712762510db> /usr/lib/libobjc.A.dylib
0x18998c000 - 0x18a2d6fff Foundation arm64e  <aa92cd58561a341492f4b4120298b39a> /System/Library/Frameworks/Foundation.framework/Foundation
0x18f544000 - 0x18f928fff CoreFoundation arm64e  <42c5c91704473995b50fde4d132c2435> /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation
0x1906bf000 - 0x190a84fff CFNetwork arm64e  <35605de33723335a83d96f35f2989935> /System/Library/Frameworks/CFNetwork.framework/CFNetwork
0x190ba9000 - 0x190f01fff QuartzCore arm64e  <c4c4667b69333b01a37b747cd0c00431> /System/Library/Frameworks/QuartzCore.framework/QuartzCore
0x1916d2000 - 0x192e98fff UIKitCore arm64e  <7b942fa4cb7633759972f58c14492fb4> /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore
0x1969c6000 - 0x196a0cfff libdispatch.dylib arm64e  <c663d847b94f3fb0925432edbc55315e> /usr/lib/system/libdispatch.dylib
0x196a0d000 - 0x196a8cfff libsystem_c.dylib arm64e  <82c0f938e2773165a61470151c651798> /usr/lib/system/libsystem_c.dylib
0x19c8f8000 - 0x19c94dfff RunningBoardServices arm64e  <32ad4aa53d97332e8381ed24fa12301a> /System/Library/PrivateFrameworks/RunningBoardServices.framework/RunningBoardServices
0x19d8e2000 - 0x19d948ff3 libc++.1.dylib arm64e  <36bf5e0c2d4036faa0752476613f6d3f> /usr/lib/libc++.1.dylib
0x1a5ffb000 - 0x1a6014fff libsystem_trace.dylib arm64e  <0de65dd9be413e129257c4f0adc0d5bb> /usr/lib/system/libsystem_trace.dylib
0x1ad8d4000 - 0x1ad956e4f dyld arm64e  <341bbf646034357e8aa6e1e4b988e03c> /usr/lib/dyld
0x1c83e4000 - 0x1c83ecfff GraphicsServices arm64e  <03732ba5113235b4b09d8dd49807d246> /System/Library/PrivateFrameworks/GraphicsServices.framework/GraphicsServices
0x1cbc2f000 - 0x1cbc65ffb libsystem_kernel.dylib arm64e  <a5d3b72578c33e19a765cceb22355093> /usr/lib/system/libsystem_kernel.dylib
0x1dbe6c000 - 0x1dbe77fff libsystem_pthread.dylib arm64e  <b89b9a5b55d93e84b6d3c3da93c1cd39> /usr/lib/system/libsystem_pthread.dylib
0x1dbeb0000 - 0x1dbeeffff libxpc.dylib arm64e  <be45e2e7648c3a609c57e63229b6cfe0> /usr/lib/system/libxpc.dylib

EOF

Environment

This behavior we can confirm is present in React Native 0.68.x or newer (we have not tested 0.67.x though, so that could also be impacted), which is why this behavior has not been observed previously (that I'm aware of). We are not sure what has caused this to now be an issue when it wasn't previously, but I suspect it's due to changes in how iOS is managing network behaviors. I find it much more unlikely that we'll find what was tweaked between RN 0.66.x to 0.68.x+.

We have not tested Indy-VDR, as that is not yet working with AFJ in a RN context (although that's definitely getting closer!), but I suspect that the behavior here would be the same with ZMQ, but I am not the expert on Indy-VDR.

Solutions

Here are a couple of the solutions discussed internally at Indicio. In particular, I want to note that this is not the first issue the community has had with ZMQ on mobile, nor do I think it'll be the last.

Indy SDK & ZMQ Updates

Additional investigation and troubleshooting would be in order, but based off of our initial observations, we believe Indy-SDK would need to be updated to use a newer version of ZMQ, assuming that ZMQ has addressed this issue in a newer version. This would result in the need to re-bundle the indy-sdk. If ZMQ has not addressed this issue (specifically because iOS is not a largely used environment with ZMQ, as I understand it), there could be the need to fork ZMQ (which poses it's own concerns), update ZMQ, bundle ZMQ, and then bundle indy-sdk with the updated ZMQ.

We've given a rough estimate of 40-80 man hours of effort involved for this fix, although this could potentially be minimally reduced with collaboration on the build process.

Indy-VDR as a Proxy Server

Indy-VDR is able to run as a proxy server, which provides a HTTP API that will make the ZMQ requests to the indy ledgers on the behalf of the caller. Aries Framework Javascript (AFJ) could be updated to support an interface that allows a indy-vdr-proxy ledger service to be implemented, which will make the API calls to the indy-vdr proxy and return the same content returned by the indy-sdk.

This is a fairly quick and doable solution. There is the additional benefit of the issues with ledger access observed with strict firewalls in some organizations / use cases, as this would also resolve that issue. This is something that the BCGov team was investigating (cc: @swcurran), however I'm now aware of what came of that.

This indy-vdr proxy server could be run along side the mediator, or separate. Additionally, in the future, DIDComm protocols could be developed in place of the HTTP API present today.

Direct DIDComm communication to the Ledger nodes

The ledger nodes could be equipped with the capability to communicate over DIDComm, or with a service running directly next to the nodes with the capability. I'll freely admit that I do not have the knowledge of how implementing direct DIDComm communication to the indy ledger should be done, just that it's something that poses additional benefits and has been discussed previously.

Last Thoughts

Is this something anyone else has run into? Are there things I've missed or incorrect assumptions made?

Indicio is looking at implementing the Indy-VDR as a Proxy solution, as this seems the fastest solution, but I think we're also interested in alternate and longer-term solutions.

Thanks!

JamesKEbert avatar Oct 06 '22 06:10 JamesKEbert

indy-vdr proxy could also run on the indy nodes as well, like the didcomm method.

KimEbert42 avatar Oct 06 '22 15:10 KimEbert42

If anyone is interested, it is likely that the error is occurring here in zmq.

The errno_assert will cause the program to crash. Changing the behavior of ZMQ to be able to return without an active socket would be helpful.

KimEbert42 avatar Oct 06 '22 15:10 KimEbert42

Maybe related to

https://github.com/zeromq/libzmq/issues/3046 https://github.com/zeromq/libzmq/pull/3047

KimEbert42 avatar Oct 06 '22 17:10 KimEbert42

I wonder if it can be worked around by allowing the app to temporarily do background networking? In "Signing & Capabilities" add Background Modes and check "Background Fetch". It might give it 30 seconds to finish started tasks. I'm also curious if we can deal with it at the Indy SDK level. Maybe make the wrapper more exception friendly (or background friendly).

Was looking through the wrapper and noticed it runs requests on the main thread. I though iOS was meant to run data tasks on a background thread to avoid slowing the UI where all UI updates take place. For another conversation. I don't think this is related to this bug.

jleach avatar Oct 06 '22 19:10 jleach

Indy-VDR probably currently has the same issue, as it still depends on libzmq. There's also a native Rust zmq implementation (https://github.com/zeromq/zmq.rs) to which I've added CurveZMQ support, but that isn't merged yet. With some work it could probably be substituted.

andrewwhitehead avatar Oct 07 '22 01:10 andrewwhitehead