Crash with demo article #79

Open
opened 2026-02-08 13:07:23 +05:30 by halkeye · 1 comment
Contributor

Clicked the demo article, got 500

libmedium-55755bbdb6-cp59n libmedium  INFO  libmedium > libmedium: .
libmedium-55755bbdb6-cp59n libmedium For more information, see: https://git.batsense.net/realaravinth/libmedium
libmedium-55755bbdb6-cp59n libmedium Build info:
libmedium-55755bbdb6-cp59n libmedium Version: 0.1.0 commit: 02b20ba6774301b8241f5e9abbe6daa9662b527e
libmedium-55755bbdb6-cp59n libmedium Starting server on: http://0.0.0.0:7000
libmedium-55755bbdb6-cp59n libmedium  INFO  actix_server::builder > starting 4 workers
libmedium-55755bbdb6-cp59n libmedium  INFO  actix_server::server  > Actix runtime found; starting in Actix runtime
libmedium-55755bbdb6-cp59n libmedium  INFO  actix_web::middleware::logger > 10.244.3.88 "GET / HTTP/1.1" 200 1249 "-" "curl/8.14.1" 0.000569
libmedium-55755bbdb6-cp59n libmedium  INFO  actix_web::middleware::logger > 10.244.4.27 "GET / HTTP/1.1" 200 1249 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:147.0) Gecko/20100101 Firefox/147.0" 0.000394
libmedium-55755bbdb6-cp59n libmedium thread 'actix-rt|system:0|arbiter:1' panicked at src/data.rs:182:22:
libmedium-55755bbdb6-cp59n libmedium called `Result::unwrap()` on an `Err` value: reqwest::Error { kind: Decode, source: Error("expected value", line: 1, column: 1) }
libmedium-55755bbdb6-cp59n libmedium note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
libmedium-55755bbdb6-cp59n libmedium thread 'actix-rt|system:0|arbiter:2' panicked at src/data.rs:157:22:
libmedium-55755bbdb6-cp59n libmedium called `Result::unwrap()` on an `Err` value: reqwest::Error { kind: Decode, source: Error("expected value", line: 1, column: 1) }

I would guess medium is blocking digitalocean ips, but i haven't looked into it at all.

Clicked the demo article, got 500 ``` libmedium-55755bbdb6-cp59n libmedium INFO libmedium > libmedium: . libmedium-55755bbdb6-cp59n libmedium For more information, see: https://git.batsense.net/realaravinth/libmedium libmedium-55755bbdb6-cp59n libmedium Build info: libmedium-55755bbdb6-cp59n libmedium Version: 0.1.0 commit: 02b20ba6774301b8241f5e9abbe6daa9662b527e libmedium-55755bbdb6-cp59n libmedium Starting server on: http://0.0.0.0:7000 libmedium-55755bbdb6-cp59n libmedium INFO actix_server::builder > starting 4 workers libmedium-55755bbdb6-cp59n libmedium INFO actix_server::server > Actix runtime found; starting in Actix runtime libmedium-55755bbdb6-cp59n libmedium INFO actix_web::middleware::logger > 10.244.3.88 "GET / HTTP/1.1" 200 1249 "-" "curl/8.14.1" 0.000569 libmedium-55755bbdb6-cp59n libmedium INFO actix_web::middleware::logger > 10.244.4.27 "GET / HTTP/1.1" 200 1249 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:147.0) Gecko/20100101 Firefox/147.0" 0.000394 libmedium-55755bbdb6-cp59n libmedium thread 'actix-rt|system:0|arbiter:1' panicked at src/data.rs:182:22: libmedium-55755bbdb6-cp59n libmedium called `Result::unwrap()` on an `Err` value: reqwest::Error { kind: Decode, source: Error("expected value", line: 1, column: 1) } libmedium-55755bbdb6-cp59n libmedium note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace libmedium-55755bbdb6-cp59n libmedium thread 'actix-rt|system:0|arbiter:2' panicked at src/data.rs:157:22: libmedium-55755bbdb6-cp59n libmedium called `Result::unwrap()` on an `Err` value: reqwest::Error { kind: Decode, source: Error("expected value", line: 1, column: 1) } ``` I would guess medium is blocking digitalocean ips, but i haven't looked into it at all.

I've started getting the same error on my home IP I can (sometimes) view articles locally.

I think it's trying to pull GetPostLight in https://git.batsense.net/realaravinth/libmedium/src/branch/master/schemas/query.graphql:

query GetPostLight($id: ID!) {
    post(id: $id) {
        uniqueSlug
        creator {
            username
        }
    }
}

The closest query I could find in a successful article load (warning long):

query InteractivePostBodyQuery($postId: ID!, $showNotes: Boolean!, $includeHighlightResponseGroups: Boolean!) {
  post(id: $postId) {
    id
    highlights {
      ...InteractivePostBody_quote
      __typename
    }
    privateNotes @include(if: $showNotes) {
      ...PostBody_privateNote
      __typename
    }
    topHighlightResponseGroups @include(if: $includeHighlightResponseGroups) {
      ...InteractivePostBody_highlightGroup
      __typename
    }
    __typename
  }
}

fragment HighlightString_quote on Quote {
  id
  userId
  user {
    id
    name
    __typename
  }
  __typename
}

fragment SelectionMenuPopover_highlight on Quote {
  id
  userId
  paragraphs {
    id
    name
    __typename
  }
  startOffset
  endOffset
  ...HighlightString_quote
  __typename
}

fragment ActiveSelectionContext_highlight on Quote {
  ...SelectionMenuPopover_highlight
  __typename
  id
}

fragment HighlighSegmentContext_highlight on Quote {
  __typename
  endOffset
  id
  paragraphs {
    name
    __typename
  }
  startOffset
  userId
}

fragment NormalizeHighlights_paragraph on Paragraph {
  name
  text
  __typename
  id
}

fragment NormalizeHighlights_highlight on Quote {
  __typename
  endOffset
  startOffset
  paragraphs {
    ...NormalizeHighlights_paragraph
    __typename
  }
  id
}

fragment getParagraphHighlights_paragraph on Paragraph {
  name
  __typename
  id
}

fragment Markups_highlight on Quote {
  __typename
  id
  paragraphs {
    name
    __typename
  }
  startOffset
  endOffset
  userId
}

fragment TextParagraph_highlight on Quote {
  ...Markups_highlight
  __typename
  id
}

fragment ImageParagraph_highlight on Quote {
  id
  ...Markups_highlight
  __typename
}

fragment PostBodyParagraph_highlight on Quote {
  ...TextParagraph_highlight
  ...ImageParagraph_highlight
  __typename
  id
}

fragment getParagraphHighlights_highlight on Quote {
  __typename
  paragraphs {
    ...getParagraphHighlights_paragraph
    __typename
  }
  ...PostBodyParagraph_highlight
  id
}

fragment ParagraphStyleGrouping_highlight on Quote {
  ...PostBodyParagraph_highlight
  __typename
  id
}

fragment ParagraphLayoutGrouping_highlight on Quote {
  ...ParagraphStyleGrouping_highlight
  __typename
  id
}

fragment PostBodySection_highlight on Quote {
  ...ParagraphLayoutGrouping_highlight
  __typename
  id
}

fragment UserAvatar_user on User {
  id
  imageId
  name
  username
  __typename
}

fragment userUrl_user on User {
  __typename
  id
  customDomainState {
    live {
      domain
      __typename
    }
    __typename
  }
  hasSubdomain
  username
}

fragment UserAvatarLinkContainer_user on User {
  ...userUrl_user
  __typename
  id
}

fragment UserAvatarWithLink_user on User {
  ...UserAvatar_user
  ...UserAvatarLinkContainer_user
  __typename
  id
}

fragment PostNotesDetails_user on User {
  id
  imageId
  name
  username
  ...UserAvatarWithLink_user
  __typename
}

fragment PostNotesMarkers_highlight on Quote {
  __typename
  id
  endOffset
  paragraphs {
    id
    name
    __typename
  }
  startOffset
  user {
    id
    ...PostNotesDetails_user
    __typename
  }
  ...HighlightString_quote
}

fragment PostBody_highlight on Quote {
  paragraphs {
    id
    __typename
  }
  ...getParagraphHighlights_highlight
  ...PostBodySection_highlight
  ...PostNotesMarkers_highlight
  __typename
  id
}

fragment getParagraphPrivateNotes_privateNote on Note {
  id
  anchor
  author {
    id
    name
    username
    imageId
    mediumMemberAt
    membership {
      tier
      __typename
      id
    }
    ...userUrl_user
    __typename
  }
  content
  createdAt
  postId
  post {
    id
    creator {
      id
      __typename
    }
    collection {
      id
      __typename
    }
    __typename
  }
  replies {
    id
    author {
      id
      name
      username
      imageId
      mediumMemberAt
      membership {
        tier
        __typename
      }
      ...userUrl_user
      __typename
    }
    content
    createdAt
    noteId
    postId
    __typename
  }
  selectionStartOffset
  selectionEndOffset
  __typename
}

fragment normalizedBodyModel_privateNote on Note {
  ...getParagraphPrivateNotes_privateNote
  __typename
  id
}

fragment PostViewNoteCard_user on User {
  id
  name
  username
  ...UserAvatarWithLink_user
  ...userUrl_user
  __typename
}

fragment PostViewNoteCard_noteReply on NoteReply {
  id
  author {
    id
    ...PostViewNoteCard_user
    __typename
  }
  content
  createdAt
  noteId
  postId
  __typename
}

fragment PostViewNoteCard_privateNote on Note {
  id
  author {
    id
    ...PostViewNoteCard_user
    __typename
  }
  content
  createdAt
  postId
  post {
    id
    creator {
      id
      __typename
    }
    collection {
      id
      __typename
    }
    __typename
  }
  replies {
    id
    ...PostViewNoteCard_noteReply
    __typename
  }
  selectionStartOffset
  selectionEndOffset
  __typename
}

fragment PostAnnotationsMarker_privateNote on Note {
  ...PostViewNoteCard_privateNote
  __typename
  id
}

fragment TextParagraph_privateNote on Note {
  ...PostAnnotationsMarker_privateNote
  __typename
  id
}

fragment ImageParagraph_privateNote on Note {
  ...PostAnnotationsMarker_privateNote
  __typename
  id
}

fragment PostBodyParagraph_privateNote on Note {
  ...TextParagraph_privateNote
  ...ImageParagraph_privateNote
  __typename
  id
}

fragment ParagraphStyleGrouping_privateNote on Note {
  ...PostBodyParagraph_privateNote
  __typename
  id
}

fragment ParagraphLayoutGrouping_privateNote on Note {
  ...ParagraphStyleGrouping_privateNote
  __typename
  id
}

fragment PostBodySection_privateNote on Note {
  ...ParagraphLayoutGrouping_privateNote
  __typename
  id
}

fragment Markups_highlightGroup on HighlightGroup {
  __typename
  id
  startOffset
  endOffset
  paragraph {
    name
    __typename
    id
  }
}

fragment TextParagraph_highlightGroup on HighlightGroup {
  ...Markups_highlightGroup
  __typename
  id
}

fragment ImageParagraph_highlightGroup on HighlightGroup {
  id
  ...Markups_highlightGroup
  __typename
}

fragment PostBodyParagraph_highlightGroup on HighlightGroup {
  ...TextParagraph_highlightGroup
  ...ImageParagraph_highlightGroup
  __typename
  id
}

fragment ParagraphStyleGrouping_highlightGroup on HighlightGroup {
  ...PostBodyParagraph_highlightGroup
  __typename
  id
}

fragment ParagraphLayoutGrouping_highlightGroup on HighlightGroup {
  ...ParagraphStyleGrouping_highlightGroup
  __typename
  id
}

fragment PostBodySection_highlightGroup on HighlightGroup {
  ...ParagraphLayoutGrouping_highlightGroup
  __typename
  id
}

fragment buildQuoteParagraphForResponses_highlightGroup on HighlightGroup {
  __typename
  startOffset
  endOffset
  paragraph {
    text
    name
    id
    __typename
  }
  id
}

fragment InResponseToQuote_highlightGroup on HighlightGroup {
  ...buildQuoteParagraphForResponses_highlightGroup
  __typename
  id
}

fragment SimpleResponseEditor_highlightGroup on HighlightGroup {
  ...InResponseToQuote_highlightGroup
  __typename
  id
}

fragment PublishPostThreadedResponse_highlightGroup on HighlightGroup {
  id
  __typename
}

fragment ResponsesSidebarContext_highlightGroup on HighlightGroup {
  id
  ...SimpleResponseEditor_highlightGroup
  ...PublishPostThreadedResponse_highlightGroup
  __typename
}

fragment PostNotesResponsesButton_highlightGroup on HighlightGroup {
  responseCount
  ...ResponsesSidebarContext_highlightGroup
  __typename
  id
}

fragment PostNotesMarkers_highlightGroup on HighlightGroup {
  __typename
  id
  endOffset
  startOffset
  paragraph {
    id
    name
    __typename
  }
  ...PostNotesResponsesButton_highlightGroup
  ...ResponsesSidebarContext_highlightGroup
}

fragment PostBody_highlightGroup on HighlightGroup {
  ...PostBodySection_highlightGroup
  ...PostNotesMarkers_highlightGroup
  __typename
  id
}

fragment SelectionMenuPopover_highlightGroup on HighlightGroup {
  id
  paragraph {
    id
    name
    __typename
  }
  startOffset
  endOffset
  ...PostNotesResponsesButton_highlightGroup
  __typename
}

fragment ActiveSelectionContext_highlightGroup on HighlightGroup {
  ...SelectionMenuPopover_highlightGroup
  __typename
  id
}

fragment InteractivePostBody_quote on Quote {
  id
  ...ActiveSelectionContext_highlight
  ...HighlighSegmentContext_highlight
  ...NormalizeHighlights_highlight
  ...PostBody_highlight
  __typename
}

fragment PostBody_privateNote on Note {
  ...normalizedBodyModel_privateNote
  ...PostBodySection_privateNote
  __typename
  id
}

fragment InteractivePostBody_highlightGroup on HighlightGroup {
  ...PostBody_highlightGroup
  ...ActiveSelectionContext_highlightGroup
  __typename
  id
}

Wonder what's up with that.

Did they change their schema? Are they fingerprinting and rejecting queries? Is this rejecting clients who didn't pass a Cloudflare challenge at cdn-cgi/challenge-platform/h/g/precursor/...?

I've started getting the same error on my home IP I can (sometimes) view articles locally. I think it's trying to pull GetPostLight in https://git.batsense.net/realaravinth/libmedium/src/branch/master/schemas/query.graphql: ```graphql query GetPostLight($id: ID!) { post(id: $id) { uniqueSlug creator { username } } } ``` The closest query I could find in a successful article load (warning long): <details> ```graphql query InteractivePostBodyQuery($postId: ID!, $showNotes: Boolean!, $includeHighlightResponseGroups: Boolean!) { post(id: $postId) { id highlights { ...InteractivePostBody_quote __typename } privateNotes @include(if: $showNotes) { ...PostBody_privateNote __typename } topHighlightResponseGroups @include(if: $includeHighlightResponseGroups) { ...InteractivePostBody_highlightGroup __typename } __typename } } fragment HighlightString_quote on Quote { id userId user { id name __typename } __typename } fragment SelectionMenuPopover_highlight on Quote { id userId paragraphs { id name __typename } startOffset endOffset ...HighlightString_quote __typename } fragment ActiveSelectionContext_highlight on Quote { ...SelectionMenuPopover_highlight __typename id } fragment HighlighSegmentContext_highlight on Quote { __typename endOffset id paragraphs { name __typename } startOffset userId } fragment NormalizeHighlights_paragraph on Paragraph { name text __typename id } fragment NormalizeHighlights_highlight on Quote { __typename endOffset startOffset paragraphs { ...NormalizeHighlights_paragraph __typename } id } fragment getParagraphHighlights_paragraph on Paragraph { name __typename id } fragment Markups_highlight on Quote { __typename id paragraphs { name __typename } startOffset endOffset userId } fragment TextParagraph_highlight on Quote { ...Markups_highlight __typename id } fragment ImageParagraph_highlight on Quote { id ...Markups_highlight __typename } fragment PostBodyParagraph_highlight on Quote { ...TextParagraph_highlight ...ImageParagraph_highlight __typename id } fragment getParagraphHighlights_highlight on Quote { __typename paragraphs { ...getParagraphHighlights_paragraph __typename } ...PostBodyParagraph_highlight id } fragment ParagraphStyleGrouping_highlight on Quote { ...PostBodyParagraph_highlight __typename id } fragment ParagraphLayoutGrouping_highlight on Quote { ...ParagraphStyleGrouping_highlight __typename id } fragment PostBodySection_highlight on Quote { ...ParagraphLayoutGrouping_highlight __typename id } fragment UserAvatar_user on User { id imageId name username __typename } fragment userUrl_user on User { __typename id customDomainState { live { domain __typename } __typename } hasSubdomain username } fragment UserAvatarLinkContainer_user on User { ...userUrl_user __typename id } fragment UserAvatarWithLink_user on User { ...UserAvatar_user ...UserAvatarLinkContainer_user __typename id } fragment PostNotesDetails_user on User { id imageId name username ...UserAvatarWithLink_user __typename } fragment PostNotesMarkers_highlight on Quote { __typename id endOffset paragraphs { id name __typename } startOffset user { id ...PostNotesDetails_user __typename } ...HighlightString_quote } fragment PostBody_highlight on Quote { paragraphs { id __typename } ...getParagraphHighlights_highlight ...PostBodySection_highlight ...PostNotesMarkers_highlight __typename id } fragment getParagraphPrivateNotes_privateNote on Note { id anchor author { id name username imageId mediumMemberAt membership { tier __typename id } ...userUrl_user __typename } content createdAt postId post { id creator { id __typename } collection { id __typename } __typename } replies { id author { id name username imageId mediumMemberAt membership { tier __typename } ...userUrl_user __typename } content createdAt noteId postId __typename } selectionStartOffset selectionEndOffset __typename } fragment normalizedBodyModel_privateNote on Note { ...getParagraphPrivateNotes_privateNote __typename id } fragment PostViewNoteCard_user on User { id name username ...UserAvatarWithLink_user ...userUrl_user __typename } fragment PostViewNoteCard_noteReply on NoteReply { id author { id ...PostViewNoteCard_user __typename } content createdAt noteId postId __typename } fragment PostViewNoteCard_privateNote on Note { id author { id ...PostViewNoteCard_user __typename } content createdAt postId post { id creator { id __typename } collection { id __typename } __typename } replies { id ...PostViewNoteCard_noteReply __typename } selectionStartOffset selectionEndOffset __typename } fragment PostAnnotationsMarker_privateNote on Note { ...PostViewNoteCard_privateNote __typename id } fragment TextParagraph_privateNote on Note { ...PostAnnotationsMarker_privateNote __typename id } fragment ImageParagraph_privateNote on Note { ...PostAnnotationsMarker_privateNote __typename id } fragment PostBodyParagraph_privateNote on Note { ...TextParagraph_privateNote ...ImageParagraph_privateNote __typename id } fragment ParagraphStyleGrouping_privateNote on Note { ...PostBodyParagraph_privateNote __typename id } fragment ParagraphLayoutGrouping_privateNote on Note { ...ParagraphStyleGrouping_privateNote __typename id } fragment PostBodySection_privateNote on Note { ...ParagraphLayoutGrouping_privateNote __typename id } fragment Markups_highlightGroup on HighlightGroup { __typename id startOffset endOffset paragraph { name __typename id } } fragment TextParagraph_highlightGroup on HighlightGroup { ...Markups_highlightGroup __typename id } fragment ImageParagraph_highlightGroup on HighlightGroup { id ...Markups_highlightGroup __typename } fragment PostBodyParagraph_highlightGroup on HighlightGroup { ...TextParagraph_highlightGroup ...ImageParagraph_highlightGroup __typename id } fragment ParagraphStyleGrouping_highlightGroup on HighlightGroup { ...PostBodyParagraph_highlightGroup __typename id } fragment ParagraphLayoutGrouping_highlightGroup on HighlightGroup { ...ParagraphStyleGrouping_highlightGroup __typename id } fragment PostBodySection_highlightGroup on HighlightGroup { ...ParagraphLayoutGrouping_highlightGroup __typename id } fragment buildQuoteParagraphForResponses_highlightGroup on HighlightGroup { __typename startOffset endOffset paragraph { text name id __typename } id } fragment InResponseToQuote_highlightGroup on HighlightGroup { ...buildQuoteParagraphForResponses_highlightGroup __typename id } fragment SimpleResponseEditor_highlightGroup on HighlightGroup { ...InResponseToQuote_highlightGroup __typename id } fragment PublishPostThreadedResponse_highlightGroup on HighlightGroup { id __typename } fragment ResponsesSidebarContext_highlightGroup on HighlightGroup { id ...SimpleResponseEditor_highlightGroup ...PublishPostThreadedResponse_highlightGroup __typename } fragment PostNotesResponsesButton_highlightGroup on HighlightGroup { responseCount ...ResponsesSidebarContext_highlightGroup __typename id } fragment PostNotesMarkers_highlightGroup on HighlightGroup { __typename id endOffset startOffset paragraph { id name __typename } ...PostNotesResponsesButton_highlightGroup ...ResponsesSidebarContext_highlightGroup } fragment PostBody_highlightGroup on HighlightGroup { ...PostBodySection_highlightGroup ...PostNotesMarkers_highlightGroup __typename id } fragment SelectionMenuPopover_highlightGroup on HighlightGroup { id paragraph { id name __typename } startOffset endOffset ...PostNotesResponsesButton_highlightGroup __typename } fragment ActiveSelectionContext_highlightGroup on HighlightGroup { ...SelectionMenuPopover_highlightGroup __typename id } fragment InteractivePostBody_quote on Quote { id ...ActiveSelectionContext_highlight ...HighlighSegmentContext_highlight ...NormalizeHighlights_highlight ...PostBody_highlight __typename } fragment PostBody_privateNote on Note { ...normalizedBodyModel_privateNote ...PostBodySection_privateNote __typename id } fragment InteractivePostBody_highlightGroup on HighlightGroup { ...PostBody_highlightGroup ...ActiveSelectionContext_highlightGroup __typename id } ``` </details> Wonder what's up with that. Did they change their schema? Are they fingerprinting and rejecting queries? Is this rejecting clients who didn't pass a Cloudflare challenge at `cdn-cgi/challenge-platform/h/g/precursor/...`?
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
realaravinth/libmedium#79
No description provided.