agentsclimarketplace

Abridge common errors

Skill jeremylongshore/claude-code-plugins-plus-skills/plugins/saas-packs/abridge-pack/skills/abridge-common-errors

425 plugins, 2,810 skills, 200 agents for Claude Code. Open-source marketplace at tonsofskills.com with the ccpi CLI package manager.

Install
npx -y skills add jeremylongshore/claude-code-plugins-plus-skills --skill abridge-common-errors

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

What its author says it does

Copied from the file, not written here

'Diagnose and fix common Abridge clinical AI integration errors.

The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

6.6 KB, as published. Nobody here has run it

Abridge Common Errors

Overview

Comprehensive troubleshooting guide for Abridge clinical documentation integration. Covers authentication failures, EHR connectivity, audio streaming, note generation, and FHIR push errors.

Error Reference

Authentication & Authorization Errors

CodeErrorRoot CauseFix
401INVALID_CREDENTIALSExpired or wrong partner secretRotate credentials in Abridge Partner Portal
401TOKEN_EXPIREDSMART on FHIR token expiredRefresh token before 60-min expiry
403ORG_NOT_PROVISIONEDorg_id not activatedContact Abridge sales engineer
403SPECIALTY_NOT_LICENSEDSpecialty not in contractCheck licensed specialties in Partner Portal
403PROVIDER_NOT_ENROLLEDProvider not onboardedComplete provider enrollment in Abridge admin

Session & Encounter Errors

CodeErrorRoot CauseFix
409SESSION_ALREADY_ACTIVEDuplicate session for same encounterReuse existing session_id
422INVALID_SPECIALTYUnsupported specialty codeUse codes from /specialties endpoint
422PATIENT_NOT_FOUNDPatient ID not in EHR contextVerify FHIR Patient resource exists
408SESSION_TIMEOUTSession idle > 30 minutesCreate new session; old ones auto-expire
500SESSION_CORRUPTEDServer-side state errorCreate new session; report to Abridge support

Audio & Transcription Errors

// Common audio streaming diagnostics
async function diagnoseAudioIssues(wsUrl: string): Promise<string[]> {
  const issues: string[] = [];

  // Check WebSocket connectivity
  try {
    const ws = new WebSocket(wsUrl);
    await new Promise((resolve, reject) => {
      ws.onopen = resolve;
      ws.onerror = reject;
      setTimeout(() => reject(new Error('Connection timeout')), 5000);
    });
    ws.close();
  } catch {
    issues.push('WebSocket connection failed — check firewall allows wss:// on port 443');
  }

  // Check audio format requirements
  // Abridge requires: 16kHz, mono, 16-bit PCM little-endian
  const requiredFormat = { sampleRate: 16000, channels: 1, encoding: 'pcm_s16le' };
  issues.push(`Verify audio format: ${JSON.stringify(requiredFormat)}`);

  return issues;
}
SymptomRoot CauseFix
Empty transcriptMicrophone not capturingCheck audio input device; verify 16kHz sample rate
Garbled transcriptWrong encodingMust be 16-bit PCM LE mono at 16kHz
Speaker mislabeledSingle-channel audioUse stereo mic or speaker diarization hints
WebSocket dropsNetwork instabilityImplement reconnect with buffered chunks
High latencyLarge audio chunksSend 100ms chunks, not full sentences

Note Generation Errors

// Note generation failure handler
async function handleNoteFailure(sessionId: string, error: any): Promise<void> {
  const status = error.response?.status;
  const code = error.response?.data?.error_code;

  switch (code) {
    case 'INSUFFICIENT_CONTENT':
      console.error('Transcript too short — need at least 30 seconds of clinical conversation');
      break;
    case 'UNSUPPORTED_LANGUAGE':
      console.error('Language not in Abridge supported set (28+ languages)');
      break;
    case 'TEMPLATE_NOT_FOUND':
      console.error('Note template not available — use: soap, hp, progress, procedure');
      break;
    case 'GENERATION_TIMEOUT':
      console.error('Note generation exceeded 120s — complex encounter, retry once');
      break;
    default:
      console.error(`Unknown note error: ${status} ${code}`);
  }
}

FHIR Integration Errors

ErrorRoot CauseFix
FHIR 422 UnprocessableInvalid DocumentReferenceValidate against FHIR R4 schema
FHIR 401 UnauthorizedEpic token expiredRe-authenticate via SMART on FHIR
FHIR 404 Not FoundWrong FHIR base URLVerify Epic FHIR endpoint in EHR config
FHIR 409 ConflictDuplicate document IDGenerate unique DocumentReference IDs
Epic SmartPhrase errorTemplate mismatchVerify SmartPhrase names match Epic config

HIPAA Compliance Errors

// PHI leak detection in error logs
function auditErrorLog(error: any): void {
  const serialized = JSON.stringify(error);

  // Check for accidental PHI in error output
  const phiPatterns = [
    /\b\d{3}-\d{2}-\d{4}\b/,        // SSN
    /\b\d{10}\b/,                     // MRN (10-digit)
    /\b[A-Z][a-z]+\s[A-Z][a-z]+\b/,  // Patient names (heuristic)
    /\b\d{1,2}\/\d{1,2}\/\d{4}\b/,   // DOB
  ];

  for (const pattern of phiPatterns) {
    if (pattern.test(serialized)) {
      console.error('WARNING: Possible PHI detected in error log — redact before logging');
      return;
    }
  }
}

Diagnostic Script

#!/bin/bash
# abridge-diagnostic.sh — Run before opening a support ticket

echo "=== Abridge Integration Diagnostics ==="

# 1. Check credentials
echo "Checking credentials..."
curl -s -o /dev/null -w "%{http_code}" \
  -H "Authorization: Bearer $ABRIDGE_CLIENT_SECRET" \
  -H "X-Org-Id: $ABRIDGE_ORG_ID" \
  "${ABRIDGE_BASE_URL}/health"

# 2. Check FHIR server
echo "Checking FHIR connectivity..."
curl -s -o /dev/null -w "%{http_code}" \
  "${EPIC_FHIR_BASE_URL}/metadata"

# 3. Check WebSocket
echo "Checking WebSocket..."
curl -s -o /dev/null -w "%{http_code}" \
  --header "Upgrade: websocket" \
  "${ABRIDGE_BASE_URL/http/ws}/ws/health"

echo "=== Diagnostics Complete ==="

Output

  • Identified root cause from error code lookup
  • Applied targeted fix for the specific error
  • HIPAA-safe error logging verified

Resources

Next Steps

For collecting debug evidence for support tickets, see abridge-debug-bundle.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.