Skip to content

QRCode code length overflow error on presentation #1

@millenc

Description

@millenc

When I access the verifier app (through https://<mydomain>/verifier) and click on the Access to Telco Portal I get the following JS error:

 Uncaught (in promise) Error: code length overflow. (1556>1056)
    createData https://cdn.jsdelivr.net/gh/davidshimjs/qrcodejs@gh-pages/qrcode.min.js:1
    makeImpl https://cdn.jsdelivr.net/gh/davidshimjs/qrcodejs@gh-pages/qrcode.min.js:1
    getBestMaskPattern https://cdn.jsdelivr.net/gh/davidshimjs/qrcodejs@gh-pages/qrcode.min.js:1
    make https://cdn.jsdelivr.net/gh/davidshimjs/qrcodejs@gh-pages/qrcode.min.js:1
    makeCode https://cdn.jsdelivr.net/gh/davidshimjs/qrcodejs@gh-pages/qrcode.min.js:1
    requestPresentation https://<redacted>/verifier/js/index.js:36

The API request to get the QR code's contents works as expected and returns a URI such as:

{
  "requestId": "<request id redacted>",
  "url": "openid-vc://?request_uri=https://verifiedid.did.msidentity.com/v1.0/tenants/<tenant id redacted>/verifiableCredentials/presentationRequests/<request id redacted>",
  "expiry": 1683187032
}

This error has already been reported on the davidshimjs/qrcodejs project on the following open issue:

davidshimjs/qrcodejs#78

Apparently, the cause is passing strings between 192 and 220 characters, which makes sense since the request URI is exactly 192 characters long. The suggested workarounds are:

  1. Add the correctLevel: QRCode.CorrectLevel.L parameter to the QRCode() constructor call
  2. Swap the davidshimjs/qrcodejs library which is currently unmaintained with a maintained fork such as: KeeeX/qrcodejs

I've tested both and 1. didn't work for me. Using the KeeeX/qrcodejs fork did however and the QR code shows fine. I've made the change on my own fork:

millenc@0fad7b4

Is this error happening for somebody else? Should we update the library?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions