groq-upgrade-migration
'Upgrade groq-sdk versions and handle Groq model deprecations.
Allowed Tools
Provided by Plugin
groq-pack
Claude Code skill pack for Groq (24 skills)
Installation
This skill is included in the groq-pack plugin:
/plugin install groq-pack@claude-code-plugins-plus
Click to copy
Instructions
Groq Upgrade & Migration
Current State
!npm list groq-sdk 2>/dev/null | grep groq-sdk || echo 'groq-sdk not installed'
!pip show groq 2>/dev/null | grep -E "Name|Version" || echo 'groq not installed (python)'
Overview
Guide for upgrading the groq-sdk package and migrating away from deprecated
model IDs. It walks a safe upgrade path — branch, bump, scan for deprecated
model references, rewrite them, and verify against the live models endpoint
before merging.
Prerequisites
- A Node project that depends on
groq-sdk(or the Pythongroqpackage). npm,git,curl, andjqavailable onPATH.- Authentication:
GROQAPIKEYexported in your shell (or CI secret
store). The SDK constructor new Groq() reads it automatically; the live
model check passes it as Authorization: Bearer $GROQAPIKEY. Get a key at
the Authentication section of
Model Deprecation Timeline
Groq announces deprecations with advance notice. These models have been deprecated:
| Deprecated Model | Deprecation Date | Replacement |
|---|---|---|
mixtral-8x7b-32768 |
2025-03-05 | llama-3.3-70b-versatile or llama-3.1-8b-instant |
gemma2-9b-it |
2025-08-08 | llama-3.1-8b-instant |
llama-3.1-70b-versatile |
2024-12-06 | llama-3.3-70b-versatile |
llama-3.1-70b-specdec |
2024-12-06 | llama-3.3-70b-specdec |
playai-tts |
2025-12-23 | Orpheus TTS models |
playai-tts-arabic |
2025-12-23 | Orpheus TTS models |
distil-whisper-large-v3-en |
— | whisper-large-v3-turbo |
Current Model IDs (Use These)
| Model ID | Type | Context | Speed |
|---|---|---|---|
llama-3.1-8b-instant |
Text | 128K | ~560 tok/s |
llama-3.3-70b-versatile |
Text | 128K | ~280 tok/s |
llama-3.3-70b-specdec |
Text | 128K | Faster |
meta-llama/llama-4-scout-17b-16e-instruct |
Vision+Text | 128K | ~460 tok/s |
meta-llama/llama-4-maverick-17b-128e-instruct |
Vision+Text | 128K | — |
whisper-large-v3 |
Audio STT | — | 164x RT |
whisper-large-v3-turbo |
Audio STT | — | 216x RT |
Always verify against the live endpoint: GET https://api.groq.com/openai/v1/models.
Instructions
Work through these six steps. Each has a copy-paste command block in
references/implementation.md; the summary here is
enough to drive the workflow, then drill in for the exact commands.
- Check current version and models — read the installed
groq-sdkversion,
compare to npm view groq-sdk version, and grep your src/ for every
model string reference.
- Upgrade the SDK —
git checkout -b chore/upgrade-groq-sdk, then
npm install groq-sdk@latest.
- Find and replace deprecated models — use
Read/Editto fold the
MODEL_MIGRATIONS resolver map (below) into your Groq client module, or
Write a new groq-migrations.ts helper, so deprecated IDs are rewritten
at runtime.
- Run the migration scanner — the
grepsweep in the reference flags
deprecated model IDs, old @groq/sdk imports, and removed method calls.
- Validate and test —
npm test, then confirm current IDs against the live
/v1/models endpoint and run the SDK integration smoke test.
- Roll back if needed — pin the previous version with
npm install groq-sdk@0.11.0 --save-exact and re-run tests.
The essential resolver skeleton (full version in the reference):
const MODEL_MIGRATIONS: Record<string, string> = {
"mixtral-8x7b-32768": "llama-3.3-70b-versatile",
"gemma2-9b-it": "llama-3.1-8b-instant",
"distil-whisper-large-v3-en": "whisper-large-v3-turbo",
// ...full map in references/implementation.md
};
function resolveModel(model: string): string {
if (model in MODEL_MIGRATIONS) {
console.warn(`Model ${model} is deprecated. Using ${MODEL_MIGRATIONS[model]} instead.`);
return MODEL_MIGRATIONS[model];
}
return model;
}
Output
Running this workflow produces:
- A
chore/upgrade-groq-sdkbranch withgroq-sdkbumped inpackage.jsonand
the lockfile.
- A scanner report listing any remaining deprecated model IDs, stale
@groq/sdk imports, or removed method calls — empty under every heading means
the code is clean.
- Updated call sites (or a
resolveModelwrapper) pointing at current model IDs. - A green
npm testrun plus a live/v1/modelslisting confirming every model
your code uses is still served.
Error Handling
| Issue | Symptom | Solution |
|---|---|---|
| Deprecated model | 400 modelnotfound or 400 model_decommissioned |
Replace with current model ID |
| Type errors after upgrade | TypeScript compilation fails | Check SDK changelog for type changes |
| Auth format change | 401 after upgrade |
Verify constructor uses apiKey, not key, and GROQAPIKEY is set |
| New required fields | 400 on previously working requests |
Check API docs for parameter changes |
Examples
Worked before/after migrations — replacing a decommissioned chat model, routing
every call through resolveModel, migrating a transcription model, and reading a
clean scanner run — are in
references/examples.md. Quick example: a call still
using mixtral-8x7b-32768 swaps to llama-3.3-70b-versatile per the migration
map, clearing the 400 model_decommissioned error.
Resources
- Full walkthrough (all commands)
- Worked examples
- Groq Model Deprecations
- Groq Changelog
- groq-sdk GitHub Releases
- Groq Current Models
For CI integration during upgrades, see the groq-ci-integration skill.