DIYgod/RSSHub · warning · NotFoundError
Series ${id} not found on Omega Scans
Error message
Series ${id} not found on Omega Scans What it means
Thrown as a `NotFoundError` (HTTP 404) when the Omega Scans chapter query API returns an empty `data` array for the given `series_id`. The handler POSTs to `https://api.omegascans.org/chapter/query` with `series_id`, `page: 1`, `perPage: 30`. An empty response means either the series does not exist or has no published chapters.
Source
Thrown at lib/routes/omegascans/series.ts:56
supportRadar: false,
supportBT: false,
supportPodcast: false,
supportScihub: false,
},
handler: async (ctx) => {
const { id } = ctx.req.param();
const response = await ofetch<ChapterQueryResponse>('https://api.omegascans.org/chapter/query', {
query: {
page: 1,
perPage: 30,
series_id: id,
},
});
const chapters = response.data;
if (chapters.length === 0) {
throw new NotFoundError(`Series ${id} not found on Omega Scans`);
}
const seriesSlug = chapters[0].series.series_slug;
const seriesTitle = seriesSlug.replaceAll('-', ' ').replaceAll(/\b\w/g, (c) => c.toUpperCase());
const seriesLink = `https://omegascans.org/series/${seriesSlug}`;
return {
title: `Omega Scans - ${seriesTitle}`,
link: seriesLink,
image: 'https://omegascans.org/wetried_only.png',
item: chapters.map((chapter) => ({
title: chapter.chapter_title ?? chapter.chapter_name,
link: `https://omegascans.org/series/${chapter.series.series_slug}/${chapter.chapter_slug}`,
pubDate: parseDate(chapter.created_at),
image: chapter.chapter_thumbnail ?? undefined,
guid: `omegascans-chapter-${chapter.id}`,
category: [chapter.price === 0 ? 'Free' : 'Paid'],
})),View on GitHub (pinned to bed535e087)
Solutions
- Verify the series ID by opening the series page on omegascans.org and checking network requests for the `series_id` parameter.
- Ensure the ID is numeric and from the API, not the URL slug.
- If the series was removed, there is no fix — use a different series ID.
Defensive patterns
Strategy: validation
Validate before calling
// Validate series ID is numeric before calling the API
if (!/^\d+$/.test(id)) {
throw new InvalidParameterError(`Series ID must be numeric, got: '${id}'`);
} Type guard
function isValidSeriesId(id: string): boolean {
return /^\d+$/.test(id);
} Try / catch
try {
const response = await ofetch<ChapterQueryResponse>(apiUrl, { query: { series_id: id } });
if (response.data.length === 0) {
throw new NotFoundError(`Series ${id} not found on Omega Scans`);
}
} catch (e) {
if (e instanceof NotFoundError) {
logger.warn(`Omega Scans series ${id} returned no chapters`);
}
throw e;
} Prevention
- Obtain the series ID from the network requests on the Omega Scans series page, not the URL slug.
- Validate the ID is numeric before the API call.
- Handle 404 gracefully in the consuming feed reader.
When it happens
Trigger: Requesting `/omegascans/series/<id>` with an ID that doesn't correspond to any series, or a series that has been removed. The API returns `{ data: [] }` for non-existent series IDs rather than an HTTP error.
Common situations: User enters a wrong series ID (the ID must be found via the API get request on the series page, not from the URL slug). The series was deleted or made private by the publisher. The site migrated series IDs.
Related errors
- id 为 ${catalogId} 的 List 不存在
- The column ${columnParam} does not exist
- The column ${columnParam} does not exist
- The column ${columnParam} does not exist
- Comic Not Found - ${name}
AI-assisted analysis of DIYgod/RSSHub@bed535e087 (2026-08-12).
Data as JSON: /api/errors/941239b834180c34.
Report an issue: GitHub.