From de89b627d395002981fdb6bdefd551ec2c22f846 Mon Sep 17 00:00:00 2001 From: Prad Nukala Date: Sat, 10 Jan 2026 14:45:06 -0500 Subject: [PATCH] refactor(enclave): enhance error extraction and logging for better debugging --- src/enclave.ts | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/src/enclave.ts b/src/enclave.ts index 7d6d2fc..6e1cdea 100644 --- a/src/enclave.ts +++ b/src/enclave.ts @@ -17,11 +17,18 @@ function extractErrorMessage(err: unknown): string { if (typeof obj.message === 'string') return obj.message; if (typeof obj.error === 'string') return obj.error; if (typeof obj.msg === 'string') return obj.msg; - try { - return JSON.stringify(err); - } catch { - return '[unknown error object]'; + const allKeys = [...Object.keys(obj), ...Object.getOwnPropertyNames(obj)]; + for (const key of allKeys) { + const val = obj[key]; + if (typeof val === 'string' && val.length > 0) { + return `${key}: ${val}`; + } } + try { + const str = JSON.stringify(err, Object.getOwnPropertyNames(err)); + if (str !== '{}') return str; + } catch {} + return `[error object with keys: ${allKeys.join(', ') || 'none'}]`; } return String(err); } @@ -69,6 +76,14 @@ export class Enclave { this.log(`generate: created DID ${output.did}`); return output; } catch (err) { + console.error('[DEBUG] Raw error:', err); + console.error('[DEBUG] typeof:', typeof err); + console.error('[DEBUG] constructor:', err?.constructor?.name); + if (typeof err === 'object' && err !== null) { + console.error('[DEBUG] keys:', Object.keys(err)); + console.error('[DEBUG] ownProps:', Object.getOwnPropertyNames(err)); + console.error('[DEBUG] prototype:', Object.getPrototypeOf(err)); + } const errMsg = extractErrorMessage(err); this.log(`generate: failed - ${errMsg}`, 'error'); throw new Error(`generate: ${errMsg}`);