fix: prevent repeated 404 errors when accessing deleted sessions (#5644)

Signed-off-by: sheikhlimon <sheikhlimon404@gmail.com>
This commit is contained in:
Sheikh Limon
2025-11-10 20:43:06 +06:00
committed by GitHub
parent 623e03f744
commit e8c895bbf8
2 changed files with 141 additions and 29 deletions
+48 -2
View File
@@ -62,12 +62,58 @@ export default function Pair({
return prev;
});
} catch (error) {
console.log(error);
setFatalError(`Agent init failure: ${error instanceof Error ? error.message : '' + error}`);
console.error('Agent initialization failed:', error);
// Clear deleted session from URL and retry
if (
error instanceof Error &&
(error.message.includes('Session not found') || error.message.includes('404'))
) {
console.log('Clearing invalid session ID from URL');
setSearchParams((prev) => {
prev.delete('resumeSessionId');
return prev;
});
try {
const chat = await loadCurrentChat({
setAgentWaitingMessage,
});
setChat(chat);
setSearchParams((prev) => {
prev.set('resumeSessionId', chat.sessionId);
return prev;
});
} catch (retryError) {
handleInitializationError(retryError);
}
} else {
handleInitializationError(error);
}
} finally {
setLoadingChat(false);
}
};
const handleInitializationError = (error: unknown) => {
let errorMessage = 'Unknown error occurred';
if (error) {
if (error instanceof Error) {
errorMessage = error.message;
} else if (typeof error === 'object' && error !== null) {
// Handle case where error is an object with properties
try {
errorMessage = JSON.stringify(error);
} catch {
errorMessage = Object.prototype.toString.call(error);
}
} else {
errorMessage = String(error);
}
}
setFatalError(`Agent init failure: ${errorMessage}`);
};
initializeFromState();
}, [
agentState,