DIYgod/RSSHub · warning · Error
此路由已停用。端传媒迁移到 Ghost CMS 后不再支持个人追踪功能。请改用 /theinitium/channel/
Error message
此路由已停用。端传媒迁移到 Ghost CMS 后不再支持个人追踪功能。请改用 /theinitium/channel/latest 或 /theinitium/tags/:tag 订阅。
What it means
The /theinitium/follow/articles route is permanently disabled: its handler unconditionally throws on every call. Initium migrated to Ghost CMS and the personal-follow feature no longer exists in the new backend, so the route cannot return data and directs users to channel/tags subscriptions instead.
Source
Thrown at lib/routes/theinitium/follow.ts:12
import type { Route } from '@/types';
export const route: Route = {
path: '/follow/articles/:language?',
name: '个人订阅追踪动态(已停用)',
maintainers: ['AgFlore', 'pseudoyu'],
parameters: {
language: '语言',
},
radar: [],
handler: () => {
throw new Error('此路由已停用。端传媒迁移到 Ghost CMS 后不再支持个人追踪功能。请改用 /theinitium/channel/latest 或 /theinitium/tags/:tag 订阅。');
},
example: '/theinitium/follow/articles',
categories: ['new-media'],
description: `::: warning
此路由已停用。端传媒已迁移到 Ghost CMS,不再支持通过 API 获取个人追踪内容。请改用标签或栏目订阅。
:::`,
};
View on GitHub (pinned to bed535e087)
Solutions
- Switch the subscription to /theinitium/channel/latest or /theinitium/tags/:tag as the error message suggests.
- Remove the deprecated follow feed from any aggregator so it stops hitting the dead endpoint.
- If maintaining the instance, consider deleting the route file once all consumers have migrated, to avoid confusion.
Defensive patterns
Strategy: validation
Validate before calling
// The route is always-on disabled; the only valid action is not to call it.
// Prefer the replacement endpoints directly.
const REPLACEMENTS = ['/theinitium/channel/latest', '/theinitium/tags/:tag'];
function isFollowRoute(path: string): boolean {
return path.startsWith('/theinitium/follow');
}
// redirect/rewrite isFollowRoute(url) to REPLACEMENTS Try / catch
try {
await fetchFeed('/theinitium/follow/articles');
} catch (e) {
if (e instanceof Error && /此路由已停用|deprecated/i.test(e.message)) {
// permanently switch the subscription to /theinitium/channel/latest
return await fetchFeed('/theinitium/channel/latest');
}
throw e;
} Prevention
- Migrate subscriptions off the follow route to /theinitium/channel/latest or /theinitium/tags/:tag.
- Remove the deprecated feed from aggregators so they stop polling it.
- Consider deleting the route file once no consumer references it.
When it happens
Trigger: Any HTTP request to /theinitium/follow/articles (with or without a :language segment) hits the handler and throws immediately. There is no input that avoids it.
Common situations: A pre-existing RSS subscription to the old follow feed keeps polling after the migration; documentation/feeds were not updated to the new routes.
Related errors
- Authentication failed. Access denied.\n${requestPath}
- Invalid URL property: ${prop}
- Invalid Engine Value: ${engine}, please check your config.
- Login required
- Disqus RSS is disabled due to the lack of <a href="https://d
AI-assisted analysis of DIYgod/RSSHub@bed535e087 (2026-08-12).
Data as JSON: /api/errors/4c70a9f28d1f441b.
Report an issue: GitHub.