fix: add defensive error handling for API version detection
Ensure error messages are always strings before rendering to prevent React error #310 (invalid React child - object). Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
This commit is contained in:
File diff suppressed because one or more lines are too long
Binary file not shown.
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "headlamp-sealed-secrets",
|
"name": "headlamp-sealed-secrets",
|
||||||
"version": "0.2.8",
|
"version": "0.2.9",
|
||||||
"description": "Headlamp plugin for Bitnami Sealed Secrets - manage encrypted Kubernetes secrets",
|
"description": "Headlamp plugin for Bitnami Sealed Secrets - manage encrypted Kubernetes secrets",
|
||||||
"files": [
|
"files": [
|
||||||
"dist",
|
"dist",
|
||||||
|
|||||||
@@ -32,14 +32,24 @@ export function VersionWarning({ autoDetect = true, showDetails = false }: Versi
|
|||||||
setLoading(true);
|
setLoading(true);
|
||||||
setError(null);
|
setError(null);
|
||||||
|
|
||||||
const result = await SealedSecret.detectApiVersion();
|
try {
|
||||||
|
const result = await SealedSecret.detectApiVersion();
|
||||||
|
|
||||||
if (result.ok) {
|
if (result.ok) {
|
||||||
setDetectedVersion(result.value);
|
setDetectedVersion(result.value);
|
||||||
setError(null);
|
setError(null);
|
||||||
} else if (result.ok === false) {
|
} else if (result.ok === false) {
|
||||||
|
setDetectedVersion(null);
|
||||||
|
// Ensure error is always a string
|
||||||
|
const errorMessage = typeof result.error === 'string'
|
||||||
|
? result.error
|
||||||
|
: String(result.error);
|
||||||
|
setError(errorMessage);
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
// Catch any unexpected errors
|
||||||
setDetectedVersion(null);
|
setDetectedVersion(null);
|
||||||
setError(result.error);
|
setError(e instanceof Error ? e.message : String(e));
|
||||||
}
|
}
|
||||||
|
|
||||||
setLoading(false);
|
setLoading(false);
|
||||||
@@ -67,8 +77,8 @@ export function VersionWarning({ autoDetect = true, showDetails = false }: Versi
|
|||||||
}>
|
}>
|
||||||
<strong>API Version Detection Failed</strong>
|
<strong>API Version Detection Failed</strong>
|
||||||
<br />
|
<br />
|
||||||
{error}
|
{String(error)}
|
||||||
{error.includes('not found') && (
|
{String(error).includes('not found') && (
|
||||||
<>
|
<>
|
||||||
<br />
|
<br />
|
||||||
<br />
|
<br />
|
||||||
|
|||||||
Reference in New Issue
Block a user