- 動作確認日:2026-10-01
- n8nのバージョン:2.41.3(Docker、セルフホスト)
目次
起きたこと
n8nの公開APIで、ワークフローを削除しようとしたところ、2種類のエラーが出ました。
1つ目:有効なまま削除しようとしたとき
DELETE /api/v1/workflows/{id}
→ {"message":"Cannot delete a published workflow. Unpublish it before deleting."}
2つ目:無効化した直後に削除しようとしたとき
DELETE /api/v1/workflows/{id}
→ 409 {"message":"Workflow is still being unpublished. Please try again in a few moments."}
原因
- 1つ目:n8n 2.x では、有効(Published)になっているワークフローは、そのままでは削除できません。
- 2つ目:無効化(Unpublish)の処理が、まだ終わっていませんでした。
対処
次の順番で消すようにしたところ、エラーなく削除できるようになりました。
- 削除する前に、ワークフローのJSONを保存しておく(
GET /api/v1/workflows/{id}) - 無効化する(
POST /api/v1/workflows/{id}/deactivate、本文は{}) - 3秒待つ
- 削除する(
DELETE /api/v1/workflows/{id})
念のため、4. で失敗したときは、さらに5秒待ってから、もう一度だけ削除するようにしています。
Invoke-RestMethod -Method Post -Uri "$url/api/v1/workflows/$id/deactivate" -Headers $h -ContentType 'application/json' -Body '{}'
Start-Sleep -Seconds 3
try {
Invoke-RestMethod -Method Delete -Uri "$url/api/v1/workflows/$id" -Headers $h
} catch {
Start-Sleep -Seconds 5
Invoke-RestMethod -Method Delete -Uri "$url/api/v1/workflows/$id" -Headers $h
}
確かめたこと
この順番で、記事用に作った確認用・テスト用のワークフローを30本以上削除しましたが、どれも削除できました。削除したあと、そのワークフローのWebhookのURLを呼ぶと 404 になることも確かめています。
