{"record":{"id":"973e1da3441a4bdc","repo":"FlowiseAI/Flowise","slug":"failed-to-search-arxiv-errormessage","errorCode":null,"errorMessage":"Failed to search Arxiv: ${errorMessage}","messagePattern":"Failed to search Arxiv: (.+?)","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/components/nodes/tools/Arxiv/core.ts","lineNumber":263,"sourceCode":"                        if (!this.continueOnFailure) {\n                            throw new Error(`Failed to process paper \"${result.title}\": ${errorMessage}`)\n                        } else {\n                            // Add error notice and continue with summary only\n                            const publishedDate = result.published ? new Date(result.published).toISOString().split('T')[0] : 'Unknown'\n                            const fallbackContent = `Published: ${publishedDate}\\nTitle: ${result.title}\\nAuthors: ${result.authors.join(\n                                ', '\n                            )}\\nSummary: ${result.summary}\\n\\n[ERROR: Could not load full content - ${errorMessage}]`\n                            docs.push(fallbackContent)\n                        }\n                    }\n                }\n\n                return docs.join('\\n\\n---\\n\\n')\n            }\n        } catch (error) {\n            const errorMessage = error instanceof Error ? error.message : 'Unknown error'\n            console.error('Arxiv search error:', errorMessage)\n            throw new Error(`Failed to search Arxiv: ${errorMessage}`)\n        }\n    }\n}\n","sourceCodeStart":245,"sourceCodeEnd":267,"githubUrl":"https://github.com/FlowiseAI/Flowise/blob/abe4a8601a058047b350c260676826e21dd14101/packages/components/nodes/tools/Arxiv/core.ts#L245-L267","documentation":"Thrown as the outer catch-all of ArxivTool._call, wrapping any error that was not already re-thrown by the inner per-paper logic (error 351) or the query guard (error 350). The original errorMessage is interpolated and console.error'd. It typically wraps fetchResults failures (error 348) that propagate up, or unexpected runtime errors.","triggerScenarios":"fetchResults throws (Arxiv API non-2xx, network error); parseArxivResponse throws on malformed XML; an unexpected TypeError during result mapping; an uncaught error from the no-full-content path.","commonSituations":"Arxiv API outage or rate limit during the search step; upstream XML schema change in the Arxiv response that breaks the parser; transient network failure.","solutions":["Inspect errorMessage — if it mentions an HTTP status, follow the retry guidance for error 348.","If it mentions a parse error, the Arxiv response shape may have changed; update parseArxivResponse.","For transient errors, retry the whole _call once after a short backoff before surfacing to the user."],"exampleFix":"// before\n} catch (error) {\n  const errorMessage = error instanceof Error ? error.message : 'Unknown error'\n  console.error('Arxiv search error:', errorMessage)\n  throw new Error(`Failed to search Arxiv: ${errorMessage}`)\n}\n// after: preserve the cause for upstream diagnosis\n} catch (error) {\n  const cause = error instanceof Error ? error : new Error(String(error))\n  throw new Error(`Failed to search Arxiv: ${cause.message}`, { cause })\n}","handlingStrategy":"try-catch","validationCode":"async function arxivPreflight(query: string) {\n  if (!query || !query.trim()) throw new Error('Query is required for Arxiv search')\n  // optional: probe connectivity\n  const r = await fetch('https://export.arxiv.org/api/query?max_results=1&search_query=all:test')\n  if (!r.ok) throw new Error(`Arxiv unreachable: ${r.status}`)\n}","typeGuard":null,"tryCatchPattern":"try {\n  return await tool._call({ query })\n} catch (e) {\n  const msg = (e as Error).message\n  if (/429|5\\d\\d|ECONN/.test(msg)) { /* backoff and retry once */ }\n  else throw new Error(`Failed to search Arxiv: ${msg}`)\n}","preventionTips":["Wrap the whole _call in a single retry for transient network errors.","Keep parseArxivResponse defensive against XML shape changes.","Surface the wrapped cause (use Error options.cause) for faster root-cause analysis."],"tags":["arxiv","runtime","catch-all","network"],"backgroundTag":null,"analyzedSha":"abe4a8601a058047b350c260676826e21dd14101","analyzedAt":"2026-08-12T16:04:40.823Z","schemaVersion":2},"datasetVersion":"2026-08-12T18:17:37.767Z"}