plandex-ai/plandex · error
error creating model pack: %w
Error message
error creating model pack: %w
What it means
Returned inside the db.WithTx transaction that persists custom models/providers/model packs, when db.UpsertModelPack fails to insert or update one of the submitted model packs. Because it occurs within the transaction closure, the whole batch of custom model/provider/model pack changes is rolled back rather than partially applied. The underlying %w carries the database-layer cause.
Source
Thrown at app/server/handlers/models.go:305
return
}
err = db.WithTx(r.Context(), "create custom models/providers/model packs", func(tx *sqlx.Tx) error {
for _, model := range toUpsertCustomModels {
if err := db.UpsertCustomModel(tx, model); err != nil {
return fmt.Errorf("error creating custom model: %w", err)
}
}
for _, provider := range toUpsertCustomProviders {
if err := db.UpsertCustomProvider(tx, provider); err != nil {
return fmt.Errorf("error creating custom provider: %w", err)
}
}
for _, modelPack := range toUpsertModelPacks {
if err := db.UpsertModelPack(tx, modelPack); err != nil {
return fmt.Errorf("error creating model pack: %w", err)
}
}
if len(toDeleteCustomModelIds) > 0 {
if err := db.DeleteCustomModels(tx, auth.OrgId, toDeleteCustomModelIds); err != nil {
return fmt.Errorf("error deleting custom models: %w", err)
}
}
if len(toDeleteCustomProviderIds) > 0 {
if err := db.DeleteCustomProviders(tx, auth.OrgId, toDeleteCustomProviderIds); err != nil {
return fmt.Errorf("error deleting custom providers: %w", err)
}
}
if len(toDeleteModelPackIds) > 0 {
if err := db.DeleteModelPacks(tx, auth.OrgId, toDeleteModelPackIds); err != nil {
return fmt.Errorf("error deleting model packs: %w", err)View on GitHub (pinned to e2d772072e)
Solutions
- Identify the failing model pack from the wrapped error
- Check pack name uniqueness and role config validity
- Fix the payload and retry the sync
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at app/server/handlers/models.go:305 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of plandex-ai/plandex@e2d772072e (2026-09-05).
Data as JSON: /api/errors/7e6c0ccaa3f077c8.
Report an issue: GitHub.