fix: log unexpected bird failures

This commit is contained in:
2026-07-13 11:08:36 +09:00
parent 65fae12e67
commit 9a93290a5d
3 changed files with 58 additions and 15 deletions
+10 -3
View File
@@ -41,7 +41,13 @@ const failure = (
retryable: boolean,
): LoadResult => ({ ok: false, error: { code, message, retryable } })
function upstreamFailure(message = ''): LoadResult {
function upstreamFailure(diagnostic: unknown = ''): LoadResult {
const message =
diagnostic instanceof Error
? diagnostic.message
: typeof diagnostic === 'string'
? diagnostic
: ''
const lower = message.toLowerCase()
if (lower.includes('timeout') || lower.includes('aborted')) {
return failure('timeout', '取得がタイムアウトしました。', true)
@@ -56,6 +62,7 @@ function upstreamFailure(message = ''): LoadResult {
false,
)
}
console.error('Unexpected Bird failure:', diagnostic)
return failure('upstream', 'X から投稿を取得できませんでした。', true)
}
@@ -104,7 +111,7 @@ export async function loadUserPage(
if (error instanceof InputError) {
return failure('invalid-input', error.message, false)
}
return upstreamFailure(error instanceof Error ? error.message : '')
return upstreamFailure(error)
}
}
@@ -130,6 +137,6 @@ export async function searchPage(
if (error instanceof InputError) {
return failure('invalid-input', error.message, false)
}
return upstreamFailure(error instanceof Error ? error.message : '')
return upstreamFailure(error)
}
}