Skip to content

[BUG] Mobile app flakeout on certain OPDS details screen #1107

@beville

Description

@beville

Description of the Bug

When I'm browsing Codex OPDS v2 feed, the Stump mobile app (iOS) will flake out when I click on certain comics. It looks like it might be related to an apostrophe/single-quote character in the manifest json strings. I don't see this happening on the Android app. When the issue occurs, it shows a black screen and "Something went wrong Error: Request failed with status code 401"

Expected Behavior

It should display the details.

Steps To Reproduce

Here's an example manifest. My guess it it's the "Nora O'Rourke" string.

{
  "metadata": {
    "title": "The Peacemaker (1967) #4",
    "identifier": "comicvine:comic:9577",
    "modified": "2026-04-19T14:27:21.183091-07:00",
    "@type": "https://schema.org/ComicIssue",
    "conformsTo": "https://readium.org/webpub-manifest/profiles/divina ",
    "published": "1967-09-01",
    "inker": [
      {
        "name": "Pat Boyette",
        "links": [
          {
            "href": "/codex/opds/v2.0/s/0/1?topGroup=s&filters=%7B%22credits%22%3A+%5B6213%5D%7D&title=Pat+Boyette",
            "rel": "http://opds-spec.org/facet",
            "type": "application/opds+json"
          }
        ],
        "role": "Inker"
      }
    ],
    "publisher": "Charlton",
    "subject": [
      {
        "name": "Nora O'Rourke",
        "links": [
          {
            "href": "/codex/opds/v2.0/s/0/1?topGroup=s&filters=%7B%22characters%22%3A+%5B16702%5D%7D&title=Nora+O%27Rourke",
            "rel": "http://opds-spec.org/facet",
            "type": "application/opds+json"
          }
        ]
      },
      {
        "name": "Peacemaker",
        "links": [
          {
            "href": "/codex/opds/v2.0/s/0/1?topGroup=s&filters=%7B%22characters%22%3A+%5B11458%5D%7D&title=Peacemaker",
            "rel": "http://opds-spec.org/facet",
            "type": "application/opds+json"
          }
        ]
      }
    ],
    "layout": "ltr",
    "belongsTo": {
      "collection": [
        {
          "name": "/gacomics/The Peacemaker",
          "links": [
            {
              "href": "/codex/opds/v2.0/f/1311/1?ts=1776634041&topGroup=f",
              "rel": "subsection",
              "type": "application/opds+json"
            }
          ]
        }
      ],
      "series": [
        {
          "name": "The Peacemaker",
          "links": [
            {
              "href": "/codex/opds/v2.0/s/3282/1?ts=1776634041&topGroup=p",
              "rel": "subsection",
              "type": "application/opds+json"
            }
          ]
        }
      ]
    }
  },
  "links": [
    {
      "href": "/codex/opds/bin/c/19441/download/The+Peacemaker+%2523004+%25281967%2529.cbz",
      "rel": "http://opds-spec.org/acquisition",
      "type": "application/vnd.comicbook+zip",
      "properties": {
        "authenticate": {
          "href": "/codex/opds/auth/v1",
          "rel": "http://opds-spec.org/auth/document",
          "type": "application/opds-authentication+json"
        }
      },
      "size": 20323211
    },
    {
      "href": "/codex/opds/v2.0/c/19441/position",
      "rel": "http://www.cantook.com/api/progression",
      "type": "application/vnd.readium.progression+json",
      "properties": {
        "authenticate": {
          "href": "/codex/opds/auth/v1",
          "rel": "http://opds-spec.org/auth/document",
          "type": "application/opds-authentication+json"
        }
      }
    },
    {
      "href": "/codex/opds/v2.0/c/19441/1",
      "rel": "self",
      "type": "application/divina+json",
      "properties": {
        "authenticate": {
          "href": "/codex/opds/auth/v1",
          "rel": "http://opds-spec.org/auth/document",
          "type": "application/opds-authentication+json"
        }
      }
    }
  ],
  "conformsTo": "https://readium.org/webpub-manifest/profiles/divina",
  "@context": "https://readium.org/webpub-manifest/context.jsonld",
  "readingOrder": [
    {
      "href": "/codex/opds/bin/c/19441/0/page.jpg?ts=1776634041",
      "type": "image/jpeg"
    },
    {
      "href": "/codex/opds/bin/c/19441/1/page.jpg?ts=1776634041",
      "type": "image/jpeg"
    },
    {
      "href": "/codex/opds/bin/c/19441/2/page.jpg?ts=1776634041",
      "type": "image/jpeg"
    },
    {
      "href": "/codex/opds/bin/c/19441/3/page.jpg?ts=1776634041",
      "type": "image/jpeg"
    },
    {
      "href": "/codex/opds/bin/c/19441/4/page.jpg?ts=1776634041",
      "type": "image/jpeg"
    },
    {
      "href": "/codex/opds/bin/c/19441/5/page.jpg?ts=1776634041",
      "type": "image/jpeg"
    },
    {
      "href": "/codex/opds/bin/c/19441/6/page.jpg?ts=1776634041",
      "type": "image/jpeg"
    },
    {
      "href": "/codex/opds/bin/c/19441/7/page.jpg?ts=1776634041",
      "type": "image/jpeg"
    },
    {
      "href": "/codex/opds/bin/c/19441/8/page.jpg?ts=1776634041",
      "type": "image/jpeg"
    },
    {
      "href": "/codex/opds/bin/c/19441/9/page.jpg?ts=1776634041",
      "type": "image/jpeg"
    },
    {
      "href": "/codex/opds/bin/c/19441/10/page.jpg?ts=1776634041",
      "type": "image/jpeg"
    },
    {
      "href": "/codex/opds/bin/c/19441/11/page.jpg?ts=1776634041",
      "type": "image/jpeg"
    },
    {
      "href": "/codex/opds/bin/c/19441/12/page.jpg?ts=1776634041",
      "type": "image/jpeg"
    },
    {
      "href": "/codex/opds/bin/c/19441/13/page.jpg?ts=1776634041",
      "type": "image/jpeg"
    },
    {
      "href": "/codex/opds/bin/c/19441/14/page.jpg?ts=1776634041",
      "type": "image/jpeg"
    },
    {
      "href": "/codex/opds/bin/c/19441/15/page.jpg?ts=1776634041",
      "type": "image/jpeg"
    },
    {
      "href": "/codex/opds/bin/c/19441/16/page.jpg?ts=1776634041",
      "type": "image/jpeg"
    },
    {
      "href": "/codex/opds/bin/c/19441/17/page.jpg?ts=1776634041",
      "type": "image/jpeg"
    },
    {
      "href": "/codex/opds/bin/c/19441/18/page.jpg?ts=1776634041",
      "type": "image/jpeg"
    },
    {
      "href": "/codex/opds/bin/c/19441/19/page.jpg?ts=1776634041",
      "type": "image/jpeg"
    },
    {
      "href": "/codex/opds/bin/c/19441/20/page.jpg?ts=1776634041",
      "type": "image/jpeg"
    },
    {
      "href": "/codex/opds/bin/c/19441/21/page.jpg?ts=1776634041",
      "type": "image/jpeg"
    },
    {
      "href": "/codex/opds/bin/c/19441/22/page.jpg?ts=1776634041",
      "type": "image/jpeg"
    },
    {
      "href": "/codex/opds/bin/c/19441/23/page.jpg?ts=1776634041",
      "type": "image/jpeg"
    },
    {
      "href": "/codex/opds/bin/c/19441/24/page.jpg?ts=1776634041",
      "type": "image/jpeg"
    },
    {
      "href": "/codex/opds/bin/c/19441/25/page.jpg?ts=1776634041",
      "type": "image/jpeg"
    },
    {
      "href": "/codex/opds/bin/c/19441/26/page.jpg?ts=1776634041",
      "type": "image/jpeg"
    },
    {
      "href": "/codex/opds/bin/c/19441/27/page.jpg?ts=1776634041",
      "type": "image/jpeg"
    },
    {
      "href": "/codex/opds/bin/c/19441/28/page.jpg?ts=1776634041",
      "type": "image/jpeg"
    },
    {
      "href": "/codex/opds/bin/c/19441/29/page.jpg?ts=1776634041",
      "type": "image/jpeg"
    },
    {
      "href": "/codex/opds/bin/c/19441/30/page.jpg?ts=1776634041",
      "type": "image/jpeg"
    },
    {
      "href": "/codex/opds/bin/c/19441/31/page.jpg?ts=1776634041",
      "type": "image/jpeg"
    },
    {
      "href": "/codex/opds/bin/c/19441/32/page.jpg?ts=1776634041",
      "type": "image/jpeg"
    },
    {
      "href": "/codex/opds/bin/c/19441/33/page.jpg?ts=1776634041",
      "type": "image/jpeg"
    },
    {
      "href": "/codex/opds/bin/c/19441/34/page.jpg?ts=1776634041",
      "type": "image/jpeg"
    },
    {
      "href": "/codex/opds/bin/c/19441/35/page.jpg?ts=1776634041",
      "type": "image/jpeg"
    }
  ]
}

Where is this issue happening?

  • Web App
  • Mobile App
  • Server

Server & Client Details

Server Details:

Codex 1.10.11

Client Details:

  • Device: iPad Air
  • OS: iOS
  • Stump mobile app 0.0.0 (120) Release 4/13/2026

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions