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"
It should display the details.
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"
}
]
}
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.
Where is this issue happening?
Server & Client Details
Server Details:
Codex 1.10.11
Client Details:
Additional context
No response