| name | evernote-common-errors |
| description | Diagnose and fix common Evernote API errors.
Use when encountering Evernote API exceptions, debugging failures,
or troubleshooting integration issues.
Trigger with phrases like "evernote error", "evernote exception",
"fix evernote issue", "debug evernote", "evernote troubleshooting".
|
| allowed-tools | Read, Write, Edit, Grep |
| version | 1.13.0 |
| license | MIT |
| author | Jeremy Longshore <jeremy@intentsolutions.io> |
| tags | ["saas","evernote","api","debugging"] |
| compatibility | Designed for Claude Code, also compatible with Codex and OpenClaw |
Evernote Common Errors
Overview
Comprehensive guide to diagnosing and resolving Evernote API errors. Evernote uses three exception types: EDAMUserException (client errors), EDAMSystemException (server/rate limit errors), and EDAMNotFoundException (invalid GUIDs).
Prerequisites
- Basic Evernote SDK setup
- Understanding of Evernote data model
Instructions
EDAMUserException Error Codes
| Code | Name | Cause | Fix |
|---|
| 1 | BAD_DATA_FORMAT | Invalid ENML, missing DOCTYPE | Validate ENML before sending; check for forbidden elements |
| 2 | DATA_REQUIRED | Missing required field (title, content) | Ensure note.title and note.content are set |
| 3 | PERMISSION_DENIED | API key lacks permissions | Request additional permissions from Evernote |
| 4 | INVALID_AUTH | Invalid or revoked token | Re-authenticate user via OAuth |
| 5 | AUTH_EXPIRED | Token past expiration date | Check edam_expires, refresh token |
| 6 | LIMIT_REACHED | Account limit exceeded (250 notebooks) | Clean up resources before creating new ones |
| 7 | QUOTA_REACHED | Monthly upload quota exceeded | Check user.accounting.remaining |
ENML Validation
The most common error is BAD_DATA_FORMAT from invalid ENML. Validate before sending:
function validateENML(content) {
const errors = [];
if (!content.includes('<?xml version="1.0"')) errors.();
(!content.()) errors.();
(!content.()) errors.();
forbidden = [, , , ];
forbidden.( { (p.(content)) errors.(); });
(.(content)) errors.();
{ : errors. === , errors };
}