Hata Kodları¶
Standart hata zarfı:
json
{
"success": false,
"request_id": "uuid",
"data": null,
"error": {
"code": "ERROR_CODE",
"message": "Human-readable message.",
"details": []
}
}
Tanımlı kodlar¶
| Kod | Anlam |
|---|---|
INVALID_JSON |
İstek gövdesi geçerli JSON değil |
MALFORMED_JSON |
JSON sözdizimi ayrıştırılamadı (detail: JSON_SYNTAX_ERROR, line/column mümkünse) |
MALFORMED_XML |
XML sözdizimi ayrıştırılamadı veya DOCTYPE reddedildi (detail: XML_SYNTAX_ERROR) |
INVALID_FIELD_TYPE |
Alan tipi uyuşmazlığı; detail içinde tam path, expected_type, actual_type |
REQUIRED_FIELD_MISSING |
Bir veya daha fazla zorunlu alan eksik |
UNKNOWN_FIELD |
Bilinmeyen JSON alanı veya XML elementi |
INVALID_REQUEST |
İstek hatalı biçimlendirilmiş |
VALIDATION_ERROR |
Bir veya daha fazla sözleşme doğrulama hatası (enum, datetime, range, karışık) |
VALIDATION_FAILED |
Bazı doğrulama hataları için legacy alias |
AUTHENTICATION_REQUIRED |
Kimlik doğrulama gerekli |
INVALID_CLIENT |
Client kimlik doğrulaması başarısız |
INVALID_TOKEN |
Erişim token'ı geçersiz veya süresi dolmuş |
INVALID_ACCESS_TOKEN |
Eski/planlı referanslar için korunan alias |
UNSUPPORTED_GRANT_TYPE |
Token grant type desteklenmiyor |
INSUFFICIENT_SCOPE |
Token gerekli kapsamı içermiyor |
IDEMPOTENCY_CONFLICT |
Eski alias; IDEMPOTENCY_KEY_CONFLICT tercih edilmeli |
IDEMPOTENCY_KEY_REQUIRED |
Live endpointte zorunlu Idempotency-Key eksik (HTTP 400) |
INVALID_IDEMPOTENCY_KEY |
Idempotency-Key boş, uzunluk/karakter/whitespace hatası veya tekrarlayan header (HTTP 400) |
IDEMPOTENCY_KEY_CONFLICT |
Aynı key farklı canonical payload ile kullanılmış (HTTP 409) |
IDEMPOTENCY_REQUEST_IN_PROGRESS |
Aynı key için aktif processing lease (HTTP 409, Retry-After: 2) |
REQUEST_ARCHIVE_UNAVAILABLE |
Zorunlu request archive insert/update kullanılamıyor (HTTP 503) |
IDEMPOTENCY_STORE_UNAVAILABLE |
Idempotency store kullanılamıyor (HTTP 503) |
PAYLOAD_TOO_LARGE |
Gövde yapılandırılmış sınırı aşıyor |
UNSUPPORTED_MEDIA_TYPE |
İstek Content-Type desteklenmiyor |
NOT_ACCEPTABLE |
Accept başlığı desteklenmiyor |
METHOD_NOT_ALLOWED |
HTTP metodu izin verilmiyor |
ROUTE_NOT_FOUND |
Rota mevcut değil |
NO_PROJECT_PROCESSED |
Yapısal olarak geçerli iş emri isteği, ancak canlı endpointte hiçbir proje yazılamadı (HTTP 409) |
INTEGRATION_ACTOR_USER_NOT_FOUND |
Yapılandırılmış INTEGRATION_ACTOR_USER_ID mevcut bir kullanıcıya karşılık gelmiyor (HTTP 409) |
INTEGRATION_ACTOR_USER_INACTIVE |
Entegrasyon aktörü var ancak aktif değil (HTTP 409) |
INTEGRATION_ACTOR_TENANT_MISMATCH |
Aktör, isteğin kiracısına ait değil (HTTP 409) |
DATABASE_UNAVAILABLE |
MongoDB bağımlılığı kullanılamıyor (hazırlık, inbound canlı kalıcılık ve outbound okuma uç noktalarında HTTP 503) |
HEALTH_DETAILS_DISABLED |
Details uç noktası devre dışı |
INTERNAL_ERROR |
Beklenmeyen dahili hata |
Entegrasyon aktör kodları¶
Canlı POST /api/v1/inbound/work-orders bu kodları, yapılandırılmış entegrasyon kimliği kullanılamadığında döner. Bunlar INTERNAL_ERROR değildir. Yanıtta aktör ObjectID, MongoDB URI, yığın izi veya store iç detayı yoktur.
| Kod | HTTP | Anlam | Olası neden | Operatör eylemi |
|---|---|---|---|---|
INTEGRATION_ACTOR_USER_NOT_FOUND |
409 | INTEGRATION_ACTOR_USER_ID için kullanıcı belgesi yok |
Installer/env var olmayan bir ObjectID gösteriyor (daha önce üretilmiş rastgele ID dahil) | --integration-actor-user-id ile mevcut aktif kullanıcıyı verin |
INTEGRATION_ACTOR_USER_INACTIVE |
409 | Kullanıcı var ama durumu active değil |
Devre dışı bırakılmış dizin kullanıcısı | Aktif bir entegrasyon kullanıcısı seçin |
INTEGRATION_ACTOR_TENANT_MISMATCH |
409 | Aktör company_id / organization_id istek kiracısıyla eşleşmiyor |
Yanlış aktör veya yanlış istek kiracısı | İstek kiracısına ait bir aktör kullanın |
Kiracı bağlamı kodları¶
Inbound iş emirleri, GET /api/v1/machine-events ve GET /api/v1/production-performance tarafından kullanılır:
| Kod | HTTP | Anlam |
|---|---|---|
TENANT_CONTEXT_REQUIRED |
400 | Ne istek/sorgu kiracı çifti ne yapılandırılmış DEFAULT_* varsayılanları |
TENANT_CONTEXT_INCOMPLETE |
400 | company_id / organization_id'den yalnızca biri verildi; ortam varsayılanları uygulanmaz |
INVALID_TENANT_CONTEXT |
400 | Verilen kiracı değeri geçerli 24 karakter ObjectID değil |
Outbound okuma kodları¶
| Kod | HTTP | Anlam |
|---|---|---|
MACHINE_CODE_REQUIRED |
400 | machine_code sorgu parametresi eksik |
MACHINE_NOT_FOUND |
404 | Çözümlenmiş kiracı ve machine_code için makine yok |
PROJECT_CODE_REQUIRED |
400 | project_code sorgu parametresi eksik |
PROJECT_NOT_FOUND |
404 | Kiracı için proje bulunamadı |
PRODUCTION_NOT_FOUND |
404 | Projede üretim bulunamadı |
PRODUCTION_STAGE_NOT_FOUND |
404 | Üretim aşaması bulunamadı |
PRODUCTION_CODE_REQUIRED |
400 | production_code olmadan production_stage_code verildi |
INVALID_FILTER_DEPENDENCY |
400 | Filtre bağımlılığı ihlali (aşama üretim gerektirir) |
INVALID_START_TIME |
400 | Hatalı veya ayrıştırılamayan start_time |
INVALID_END_TIME |
400 | Hatalı veya ayrıştırılamayan end_time |
INVALID_TIME_RANGE |
400 | Geçersiz zaman penceresi (tek taraflı zamanlar veya start end'den önce değil) |
INVALID_LIMIT |
400 | limit 1–1000 dışında |
INVALID_CURSOR |
400 | İmleç geçersiz veya mevcut filtrelerle uyuşmuyor |
Doğrulama detay kodları (gelen iş emirleri)¶
Aynı istek içinde belirsiz yapısal tekrarlar olduğunda VALIDATION_FAILED (HTTP 400) altında error.details[].code olarak görünür:
| Kod | Anlam |
|---|---|
DUPLICATE_PROJECT_CODE |
Aynı istekte project_code tekrarı |
DUPLICATE_PRODUCTION_CODE |
Aynı proje içinde production_code tekrarı |
DUPLICATE_PRODUCTION_STAGE_CODE |
Aynı üretim içinde production_stage_code tekrarı |
DUPLICATE_MACHINE_CODE |
Aynı aşama içinde machine_code tekrarı |
DUPLICATE_EMPLOYEE_USERNAME |
Aynı aşama içinde username tekrarı |
Sonuç / uyarı kodları (gelen iş emirleri)¶
Başarılı canlı kalıcılık yanıtlarında data.results[].warnings altında görünür; NO_PROJECT_PROCESSED (409) details içinde de yer alabilir:
| Kod | Anlam |
|---|---|
PROJECT_NAME_CONFLICT |
Aynı project_code farklı project_name ile mevcut; proje atlandı |
MACHINE_NOT_FOUND |
Makine çözülemedi; üretim aşaması atlandı |
EMPLOYEE_NOT_FOUND |
Kullanıcı çözülemedi; çalışan ataması atlandı (aşama devam eder) |
ALL_STAGES_SKIPPED |
Bir üretim için tüm gelen aşamalar atlandı; üretim atlandı |
ALL_PRODUCTIONS_SKIPPED |
Bir proje için tüm üretimler atlandı; proje atlandı |
Inbound canlı kalıcılık sırasında MongoDB erişilemezse DATABASE_UNAVAILABLE HTTP 503 olarak döner (örneğin bağlantı, server selection veya zaman aşımı). İstemci yanıtlarına dahili MongoDB hata metni eklenmez.
POST /api/v1/inbound/work-orders/test için 200 yanıtı payload formatının ve sözleşmesinin geçerli olduğu anlamına gelir. Test endpointi MongoDB’ye erişmez ve veritabanı tabanlı uyarı kodları dönmez.