Summary
The check-duplicates CI job fails on every PR with a TypeError in the duplicate PR detection script.
Error
TypeError: undefined is not an object (evaluating 'session.data.id')
at main (/home/runner/work/opencode/opencode/script/duplicate-pr.ts:64:29)
Root Cause
The script at script/duplicate-pr.ts calls opencode.client.session.create() which returns session.data as undefined. This happens because:
- The CI environment likely lacks a valid
OPENCODE_API_KEY
- The session creation fails silently, returning
{ data: undefined }
- The script doesn't handle the undefined case before accessing
.id
Impact
- Every PR shows
check-duplicates as failed
- This is cosmetic noise — it does not affect code quality checks
- May desensitize developers to CI failures ("oh that always fails")
Fix Options
- Add null check:
if (!session.data) { console.log('No session — skipping duplicate check'); process.exit(0); }
- Set
OPENCODE_API_KEY as a GitHub Actions secret
- Make the job
continue-on-error: true as interim measure
Evidence
CI logs from PR #117:
62 | const result = await opencode.client.session
63 | .prompt({
64 | path: { id: session.data!.id },
^
TypeError: undefined is not an object (evaluating 'session.data.id')
Ref
Observed on all PRs since at least PR #113
Summary
The
check-duplicatesCI job fails on every PR with a TypeError in the duplicate PR detection script.Error
Root Cause
The script at
script/duplicate-pr.tscallsopencode.client.session.create()which returnssession.dataasundefined. This happens because:OPENCODE_API_KEY{ data: undefined }.idImpact
check-duplicatesas failedFix Options
if (!session.data) { console.log('No session — skipping duplicate check'); process.exit(0); }OPENCODE_API_KEYas a GitHub Actions secretcontinue-on-error: trueas interim measureEvidence
CI logs from PR #117:
Ref
Observed on all PRs since at least PR #113