Establish the shape of database error responses across engines and Neptune versions
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 20/100
- Issue type
- Documentation
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- aws, typescript
- Domain
- backend-api-design, databases, documentation
Research direction
Start with connector/utils/isErrorResponse.ts, utils/extractErrorMessage.ts, connector/fetchDatabaseRequest.ts:120, and utils/createDisplayError.ts to trace the current error handling. Use the test-graph-sources skill and AWS Neptune documentation to inspect each listed engine and endpoint, recording observed versus documented shapes. Done means a field inventory by engine and version, a schema recommendation, and a minimal contract covering what GE consumes.
Written by the indexing model from the issue text.
Description
Goal
GE has no single definition of what a database error response looks like, and the two definitions it does have disagree:
connector/utils/isErrorResponse.tstreats an error as{ code, detailedMessage }, both truthy.utils/extractErrorMessage.tsprobesdetailedMessage,message,description, thenerror, implying at least four shapes reach the display layer. It is called fromconnector/fetchDatabaseRequest.ts:120andutils/createDisplayError.ts.
Neither is derived from a documented contract. All 14 call sites of the guard then do throw new Error(data.detailedMessage) and discard code, so today code only acts as a discriminator and detailedMessage is the only field GE consumes.
Before replacing the guard with a schema, establish what the real shapes are, so the schema encodes a contract rather than a fresh guess.
Questions to answer
- What does Neptune actually return for a failed query, per engine: Gremlin over HTTP, openCypher, SPARQL? Field names, types, which are guaranteed present.
- Does that shape differ across Neptune engine versions, and between Neptune Database and Neptune Analytics?
- Are errors delivered as a non-2xx status, a 200 with an error body, or both? The current guard only inspects the parsed body, so a 200-with-error-body is the case it exists for.
- What do the non-Neptune supported endpoints return: Gremlin Server, Blazegraph, and the local Docker containers used for development?
- Which fields does GE genuinely need?
detailedMessageis the only one read today. Iscodeworth keeping for display, logging, or retry decisions, or is it purely a discriminator? - Does the proxy reshape or wrap any of this on the way through?
Expected Outcome
A field inventory per engine and version, a recommendation on whether one schema or per-engine variants is right, and a proposed minimal schema covering only what GE consumes. Enough for the implementation task to proceed without further discovery.
Use live instances (see the test-graph-sources skill) alongside the AWS Neptune documentation. Record which findings came from observation and which from docs, since the two have diverged before.
Related Issues
- Part of #2171
- Originated from #2162
[!IMPORTANT]
Internal only — this issue is maintained by the core team and is not accepting external contributions.
- Dominant language
- TypeScript
- Stars
- 481
- Forks
- 110
- Avg merge
- 2d 14h
- Merged PRs (30d)
- 9
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from aws/graph-explorer
-
Difficulty 1/5 Under an hour Newbie friendliness 92/100
aws/graph-explorer#2199 · 2 comments ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
aws/graph-explorer#2196 · 2 comments ·
-
help wanted needs-triage
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
aws/graph-explorer#2060 ·
-
help wanted reliability usability
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
aws/graph-explorer#1977 · 2 comments ·
-
documentation usability
Difficulty 2/5 1-2 days Newbie friendliness 68/100
aws/graph-explorer#1719 ·
All issues in aws/graph-explorer
Similar issues
-
comp/dashboard P3 type/bug
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
NousResearch/hermes-agent#117722 ·
-
clawsweeper:fix-shape-clear clawsweeper:queueable-fix clawsweeper:source-repro impact:ux-friction issue-rating: 🦞 diamond lobster no-stale P3
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Difficulty 1/5 Under an hour Newbie friendliness 76/100
-
code-quality refactoring
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
github/gh-aw-firewall#8816 ·
-
integration:quickjs org:external priority:backlog topic:code-interpreter topic:middleware type:feature
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
langchain-ai/deepagents#6450 ·