mirror of
https://github.com/leonvanzyl/autocoder.git
synced 2026-01-30 06:12:06 +00:00
Merge pull request #105 from nioasoft/fix/assistant-conversation-404-handling
fix: handle 404 errors for deleted assistant conversations
This commit is contained in:
@@ -50,11 +50,23 @@ export function AssistantPanel({ projectName, isOpen, onClose }: AssistantPanelP
|
|||||||
)
|
)
|
||||||
|
|
||||||
// Fetch conversation details when we have an ID
|
// Fetch conversation details when we have an ID
|
||||||
const { data: conversationDetail, isLoading: isLoadingConversation } = useConversation(
|
const { data: conversationDetail, isLoading: isLoadingConversation, error: conversationError } = useConversation(
|
||||||
projectName,
|
projectName,
|
||||||
conversationId
|
conversationId
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Clear stored conversation ID if it no longer exists (404 error)
|
||||||
|
useEffect(() => {
|
||||||
|
if (conversationError && conversationId) {
|
||||||
|
const message = conversationError.message.toLowerCase()
|
||||||
|
// Only clear for 404 errors, not transient network issues
|
||||||
|
if (message.includes('not found') || message.includes('404')) {
|
||||||
|
console.warn(`Conversation ${conversationId} not found, clearing stored ID`)
|
||||||
|
setConversationId(null)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, [conversationError, conversationId])
|
||||||
|
|
||||||
// Convert API messages to ChatMessage format for the chat component
|
// Convert API messages to ChatMessage format for the chat component
|
||||||
const initialMessages: ChatMessage[] | undefined = conversationDetail?.messages.map((msg) => ({
|
const initialMessages: ChatMessage[] | undefined = conversationDetail?.messages.map((msg) => ({
|
||||||
id: `db-${msg.id}`,
|
id: `db-${msg.id}`,
|
||||||
|
|||||||
@@ -26,6 +26,16 @@ export function useConversation(projectName: string | null, conversationId: numb
|
|||||||
queryFn: () => api.getAssistantConversation(projectName!, conversationId!),
|
queryFn: () => api.getAssistantConversation(projectName!, conversationId!),
|
||||||
enabled: !!projectName && !!conversationId,
|
enabled: !!projectName && !!conversationId,
|
||||||
staleTime: 30_000, // Cache for 30 seconds
|
staleTime: 30_000, // Cache for 30 seconds
|
||||||
|
retry: (failureCount, error) => {
|
||||||
|
// Don't retry on "not found" errors (404) - conversation doesn't exist
|
||||||
|
if (error instanceof Error && (
|
||||||
|
error.message.toLowerCase().includes('not found') ||
|
||||||
|
error.message === 'HTTP 404'
|
||||||
|
)) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return failureCount < 3
|
||||||
|
},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user