88 lines
3.2 KiB
Markdown
88 lines
3.2 KiB
Markdown
# Connection Error Fix
|
|
|
|
## Issue: "Could not establish connection. Receiving end does not exist."
|
|
|
|
This error occurs when the popup tries to communicate with the content script, but the content script hasn't fully loaded yet or isn't responding.
|
|
|
|
### When This Happens
|
|
|
|
1. **Settings pages or other Claude.ai pages**: The content script loads on all `claude.ai/*` pages, but there might be a timing issue where the page hasn't fully initialized the message listener yet.
|
|
|
|
2. **Page just loaded**: If you click the export button immediately after loading a Claude.ai page, the content script might not be ready.
|
|
|
|
3. **Tab navigated away and back**: Sometimes the content script needs to reinitialize.
|
|
|
|
### Solutions Implemented
|
|
|
|
#### 1. Better Error Messages
|
|
The extension now catches the "connection" error and provides helpful guidance:
|
|
|
|
- **For "Export Current Conversation"**:
|
|
- Old: Generic browser error
|
|
- New: "Content script not ready. Please refresh the Claude.ai page and try again."
|
|
|
|
- **For "Export All"**:
|
|
- Old: Generic browser error
|
|
- New: "Content script not ready. Please refresh the Claude.ai page or use 'Browse All Conversations' instead."
|
|
|
|
#### 2. Recommended Workarounds
|
|
|
|
If you see this error:
|
|
|
|
**Option A: Refresh the page**
|
|
1. Refresh the Claude.ai page (F5 or Ctrl+R)
|
|
2. Wait a moment for the page to fully load
|
|
3. Try the export again
|
|
|
|
**Option B: Use Browse All Conversations (Recommended)**
|
|
1. Click the extension icon
|
|
2. Click "Browse All Conversations" button
|
|
3. This opens a dedicated page that doesn't rely on content scripts
|
|
4. Export from there without any connection issues
|
|
|
|
### Why Browse All Conversations is Better
|
|
|
|
The "Browse All Conversations" feature:
|
|
- ✅ Works from ANY tab (not just Claude.ai)
|
|
- ✅ Doesn't depend on content scripts
|
|
- ✅ Never has connection errors
|
|
- ✅ Provides a full UI for browsing, searching, and filtering
|
|
- ✅ Shows export progress with cancel option
|
|
- ✅ More reliable for bulk exports
|
|
|
|
### Technical Details
|
|
|
|
**Content Script Loading**
|
|
- The content script runs on all `https://claude.ai/*` pages
|
|
- It sets up a message listener to handle export requests
|
|
- Sometimes there's a race condition between the page loading and the listener being ready
|
|
|
|
**Error Detection**
|
|
The popup now checks for connection errors by looking for keywords in the error message:
|
|
```typescript
|
|
if (errorMsg.includes('connection') || errorMsg.includes('Receiving end'))
|
|
```
|
|
|
|
**Fallback Behavior**
|
|
Rather than showing a cryptic browser error, the extension now:
|
|
1. Detects the connection failure
|
|
2. Provides a clear, actionable error message
|
|
3. Suggests alternatives (refresh or use Browse page)
|
|
|
|
### Best Practices
|
|
|
|
For the most reliable experience:
|
|
|
|
1. **Use "Browse All Conversations"** for bulk exports - it's the most reliable method
|
|
2. **Wait for pages to fully load** before using "Export Current" or "Export All"
|
|
3. **Refresh if you see connection errors** - this reloads the content script
|
|
4. **Check console logs** (F12) if issues persist - look for content script load messages
|
|
|
|
### Future Improvements
|
|
|
|
Potential enhancements to consider:
|
|
- Auto-inject content script if not detected
|
|
- Add retry logic with exponential backoff
|
|
- Show loading state while waiting for content script
|
|
- Detect if content script is loaded before attempting message send
|