Kody błędów i komunikatów diagnostycznych

Dokumentacja wersji v0.1.0-beta.3Zobacz źródło na GitHubie

Tłumaczenie oryginalnej strony w języku angielskim dla OmsiLaunch 0.1.0-beta3. Wiążąca jest strona angielska: w razie rozbieżności obowiązują strona angielska i kod.

Ta strona jest normatywnym opisem każdego kodu z PublicErrorCodes (src/OmsiLaunch.Api/PublicErrorCodes.cs): 142 kodów błędów OL_E_ i jednego ostrzeżenia OL_W_, pogrupowanych według kategorii katalogu, a także informacyjnych kodów diagnostycznych, które nie są błędami. Dla każdego kodu podano, w którym miejscu bieżący kod go zgłasza, co oznacza, w jaki sposób trafia do wywołującego (zgłoszony wyjątek, pole wyniku, komunikat diagnostyczny, odpowiedź płaszczyzny sterowania lub koperta CLI) oraz co należy zrobić. Znaczenia zostały ustalone na podstawie miejsc zgłaszania; jeśli kod jest zdefiniowany, ale nie ma obecnie ścieżki zgłaszania, strona wyraźnie to zaznacza.

Powiązane strony: publiczne API, kody wyjścia, LaunchSpec, cykl życia sesji, transakcje i odzyskiwanie, lokalna płaszczyzna sterowania, sterowanie runtime, profile sesji, stała wtyczka.

Jak kody docierają do wywołującego#

PowierzchniaZnaczenie
Zgłaszany wyjątekWyjątek, którego Message zaczyna się od kodu (InvalidOperationException, IOException, TimeoutException, InvalidDataException, FileNotFoundException, ArgumentException, SessionProfileException). CLI wyodrębnia kod z komunikatu i mapuje go na kod wyjścia (CliProgram.Classify).
Komunikat diagnostyczny planuLaunchDiagnostic w SessionPlan.Diagnostics; każdy kod OL_E_ powoduje, że IsRunnable ma wartość false (CLI: plan NOT RUNNABLE, kod wyjścia 1).
Komunikat diagnostyczny sesjiLaunchDiagnostic w SessionStatus.Diagnostics; stan sesji to Failed (kod wyjścia CLI 1). OL_E_START_SESSION, OL_E_PROCESS_SUPERVISION i OL_E_RESTORE_FAILED opakowują w swoim komunikacie kod wewnętrzny.
Wynik runtimeRuntimeCommandResult.ErrorCode przy Succeeded = false.
Szczegół runtimeRuntimeCommandResult.ErrorCode = OL_E_RUNTIME_OPERATION_FAILED, a konkretny kod jako pierwszy token Values["detail"] (wraz z Values["exception"]). W ten sposób udostępniany jest każdy kod z InvalidOperationException/ArgumentException po stronie wtyczki.
Odpowiedź sterowaniaErrorCode odpowiedzi lokalnej płaszczyzny sterowania (LocalControlResponse).
Koperta CLIerror.code w kopercie --json albo <code>: <message> na konsoli; podany jest kod wyjścia.
TelemetriaNazwa zdarzenia runtime, którą host mapuje na komunikat diagnostyczny sesji.

Cli#

KodZgłaszany przezZnaczenie / typowa przyczynaPowierzchniaCo zrobić
OL_E_CANCELLEDCliProgram.ClassifyNieobsłużony wyjątek OperationCanceledException (Ctrl+C lub anulowane oczekiwanie klienta).Koperta CLI, kod wyjścia 7Ponowić polecenie.
OL_E_INTERNALCliProgram.ClassifyNieobsłużony wyjątek bez kodu OL_E_: niepoprawny JSON w /spec, wymagany element specyfikacji o wartości null, nieoczekiwana usterka.Koperta CLI, kod wyjścia 10Przeczytać komunikat i <root>\.omsilaunch\diagnostics\<sessionId>-host.log; poprawić dane wejściowe; zgłosić, jeśli przyczyna jest niewyjaśniona.
OL_E_TIMEOUTCliProgram.Classify; LocalControlPlane.TryRequestAsyncNieobsłużony wyjątek TimeoutException bez kodu; albo klient lokalnego sterowania połączył się z właścicielem, który nie odpowiedział w limicie czasu (właściciel istnieje, więc nie jest to zgłaszane jako OL_E_NO_ACTIVE_SESSION). (Przekroczenia limitu czasu skrzynki runtime zamiast tego niosą OL_E_RUNTIME_REQUEST_TIMEOUT).Koperta CLI, odpowiedź sterowania; kod wyjścia 5 z Classify, kod wyjścia 7 dla odpowiedzi sterowaniaPonowić; sprawdzić, czy OMSI i właściciel reagują.
OL_E_WINDOWS_HOST_MISSINGCliProgram.RunAsync (/silent)Obok OmsiLaunch.exe nie ma OmsiLaunchW.exe.Koperta CLI, kod wyjścia 7Ponownie zainstalować pakiet.
OL_E_WINDOWS_HOST_START_FAILEDCliProgram.RunAsync (/silent)Process.Start dla OmsiLaunchW.exe nie zwrócił procesu.Koperta CLI, kod wyjścia 7Sprawdzić pliki pakietu i uprawnienia; uruchomić bez /silent, aby zobaczyć błąd.

Compatibility#

KodZgłaszany przezZnaczenie / typowa przyczynaPowierzchniaCo zrobić
OL_E_BUILD_VALIDATION_FAILEDOmsiLaunchService.ApplyTelemetry przy plugin.build.invalidKontrola buildu wewnątrz procesu wykonywana przez wtyczkę (profil Omsi23004_692EBFBF oraz natywna sonda VMT) nie powiodła się, mimo że host zaakceptował plik wykonywalny, np. dla buildu Steam LAA z listy dozwolonych, którego układ w pamięci jest inny, lub dla zmodyfikowanego OMSI.Komunikat diagnostyczny sesji (Failed)Użyć buildu zweryfikowanego w runtime; zob. zgodność.
OL_E_UNSUPPORTED_BUILDSessionPlanner (omsi.profile.OMSI23004 niedostępne)Brak Omsi.exe albo jego rozmiar/SHA-256 nie odpowiada ani odciskowi profilu, ani liście dozwolonych.Komunikat diagnostyczny planuZainstalować obsługiwany build OMSI 2.3.004.
OL_E_UNSUPPORTED_OPERATING_SYSTEMSessionPlanner (runtime.current-windows-x64 niedostępne); zgłaszany także przez CurrentWindowsX64Platform.ValidateCurrent, której usługa nie wywołujeSystem inny niż Windows 10 lub nowszy albo system operacyjny lub proces hosta nie jest x64.Komunikat diagnostyczny planu (kod wyjścia CLI 3 przy zgłoszeniu wyjątku)Uruchamiać w 64-bitowym systemie Windows 10 lub nowszym.
OL_E_UNSUPPORTED_OS_ARCHITECTUREWyłącznie CurrentWindowsX64Platform.ValidateCurrentArchitektura systemu operacyjnego lub hosta nie jest x64. Usługa nie wywołuje ValidateCurrent; brak obecnej ścieżki zgłaszania.Zgłaszany (PlatformNotSupportedException) wyłącznie przez tę metodęZob. źródło src/OmsiLaunch.Process/RuntimePlatform.cs.

Content#

KodZgłaszany przezZnaczenie / typowa przyczynaPowierzchniaCo zrobić
OL_E_ENTRYPOINT_NOT_FOUNDLaunchValidationNEW_MAP bez EntrypointIdentity i z nieustawionym lub ujemnym PresentedEntrypointIndex.Komunikat diagnostyczny planuUstawić PresentedEntrypointIndex (/entrypoint-index:<n>); punkty wejścia można wykryć poleceniem /list:entrypoints /map:<id>.
OL_E_ENTRYPOINT_REQUIREDSessionPlanner (world.presented-entrypoint niedostępne)Mapa NEW_MAP została rozpoznana, ale brak zarówno prezentowanego indeksu, jak i identyfikatora. Zawsze towarzyszy OL_E_ENTRYPOINT_NOT_FOUND.Komunikat diagnostyczny planuJak wyżej.
OL_E_HOF_NOT_FOUNDSessionPlannerPlayerVehicle.Hof nie jest zainstalowanym plikiem Vehicles\...\*.hof.Komunikat diagnostyczny planuUżyć identyfikatora z /list:hofs. (Pola pojazdu gracza i tak są w tym buildzie niemożliwe do uruchomienia).
OL_E_MAP_NOT_FOUNDLaunchValidation; SessionPlannerWalidacja: NEW_MAP z nieustawionym MapIdentity lub o postaci innej niż maps\<dir>\global.cfg. Planista: mapa nie jest zainstalowana.Komunikat diagnostyczny planuUżyć identyfikatora z /list:maps.
OL_E_NOT_FOUNDCliProgram.ClassifyNieobsłużony wyjątek FileNotFoundException/DirectoryNotFoundException bez kodu, np. /list:repaints z nieznanym /vehicle-scope albo /list:entrypoints z nieznanym /map.Koperta CLI, kod wyjścia 6Poprawić identyfikator.
OL_E_REPAINT_NOT_FOUNDSessionPlannerPlayerVehicle.Repaint nie jest elementem .cti danego modelu (sprawdzane tylko wtedy, gdy ustawiono Model).Komunikat diagnostyczny planuUżyć identyfikatora z /list:repaints /vehicle-scope:<bus>.
OL_E_SITUATION_MAP_NOT_FOUNDSessionPlannerMapa, do której odwołuje się wybrany plik .osn, nie jest zainstalowana.Komunikat diagnostyczny planuZainstalować mapę lub wybrać inną sytuację.
OL_E_SITUATION_NOT_FOUNDLaunchValidation; SessionPlannerSAVED_SITUATION bez SituationIdentity albo plik .osn nie jest zainstalowany.Komunikat diagnostyczny planuUżyć identyfikatora z /list:situations.
OL_E_VEHICLE_NOT_FOUNDSessionPlannerPlayerVehicle.Model nie jest zainstalowanym plikiem Vehicles\...\*.bus.Komunikat diagnostyczny planuUżyć identyfikatora z /list:vehicles.

Installation#

KodZgłaszany przezZnaczenie / typowa przyczynaPowierzchniaCo zrobić
OL_E_INSTALLATION_BUSYInstallationLease.Acquire; OmsiLaunchService.RecoverPendingAsync; FileConfigurationTransaction.RestorePendingAsyncDzierżawa instalacji (Local\OmsiLaunch.Installation.<hash>) jest utrzymywana przez innego właściciela w tej sesji logowania albo proces OMSI zapisany w dzienniku (PID + czas utworzenia + ścieżka pliku wykonywalnego; lub dowolny Omsi.exe z katalogu głównego w przypadku dziennika za etapem HandoffCreated bez PID) nadal działa.Start: komunikat diagnostyczny sesji przez OL_E_START_SESSION. Odzyskiwanie: zgłaszany wyjątek (InvalidOperationException / IOException). Kod wyjścia CLI 7.Zatrzymać innego właściciela (session stop) lub poczekać na zakończenie OMSI, a następnie ponowić albo wykonać /recover.
OL_E_INSTALLATION_NOT_FOUNDLaunchValidationInstallation.RootPath jest puste.Komunikat diagnostyczny planuPrzekazać katalog instalacji.
OL_E_INSTALLATION_NOT_WRITABLESessionPlanner (transaction.exact-restore niedostępne); także ValidateCurrentKatalog główny nie istnieje, ma atrybut tylko do odczytu lub nie zawiera katalogu plugins\.Komunikat diagnostyczny planuWskazać rzeczywistą, zapisywalną instalację OMSI.
OL_E_PERMANENT_PLUGIN_HASH_MISMATCHRuntimeArtifactSet.ValidateInstalled (planowanie i start)Zainstalowany plik plugins\OmsiLaunch.* różni się od hasha w release-manifest.json (lub od referencyjnego zestawu plików wtyczki, gdy manifestu brak).Komunikat diagnostyczny planu (plan niemożliwy do uruchomienia, kod wyjścia CLI 1); komunikat diagnostyczny sesji przez OL_E_START_SESSION tylko wtedy, gdy pliki zmienią się między planowaniem a startemPonownie zainstalować pakiet OmsiLaunch, aby plugins\ i manifest były zgodne.
OL_E_PERMANENT_PLUGIN_MANIFEST_INCOMPLETERuntimeArtifactSet.ValidateInstalled (planowanie i start)Manifest nie zawiera wpisu dla wymaganego pliku wtyczki.Komunikat diagnostyczny planu; komunikat diagnostyczny sesji przez OL_E_START_SESSION przy takim samym wyścigu jak wyżejPonownie zainstalować pakiet.
OL_E_PERMANENT_PLUGIN_MISSINGRuntimeArtifactSet.ValidateInstalled (planowanie i start)W instalacji OMSI brakuje wymaganego pliku plugins\OmsiLaunch.* albo plik plugins/ wymieniony w release-manifest.json nie jest zainstalowany.Komunikat diagnostyczny planu; komunikat diagnostyczny sesji przez OL_E_START_SESSION przy takim samym wyścigu jak wyżejZainstalować zestaw plików stałej wtyczki (instalacja).
OL_E_PLATFORM_CAPABILITY_MISSINGWyłącznie CurrentWindowsX64Platform.ValidateCurrentCurrentPlatformSupported ma wartość false. Nie jest wywoływana przez usługę; brak obecnej ścieżki zgłaszania.Zgłaszany wyłącznie przez tę metodęZob. źródło.
OL_E_RELEASE_MANIFEST_INVALIDReleaseManifest.TryReadPluginHashes / ParsePluginHashesrelease-manifest.json jest pusty, nie jest JSON-em, nie ma tablicy files albo zawiera wpis bez path/sha256, hash, który nie składa się z 64 cyfr szesnastkowych, ścieżkę bezwzględną, zawierającą :, pusty segment, segment . lub .., albo ścieżkę wymienioną dwukrotnie (porównanie bez rozróżniania wielkości liter, / i \ są równoważne). BOM UTF-8 jest akceptowany.Planowanie: opakowany w OL_E_RUNTIME_ARTIFACT_MISSING; start: przez OL_E_START_SESSIONPonownie zainstalować pakiet.

InvalidArgument#

KodZgłaszany przezZnaczenie / typowa przyczynaPowierzchniaCo zrobić
OL_E_INVALID_ARGUMENTLaunchValidation; CliInput.Parse/ClassifyWalidacja: ustawiono Date.Value/Time.Value, choć tryb nie jest Explicit. CLI: nieznana flaga, brak wartości, błędna liczba całkowita lub zakres, /saved w połączeniu z /map//entrypoint, nieznana ścieżka polecenia, dowolny ArgumentException/FormatException bez kodu.Komunikat diagnostyczny planu; koperta CLI, kod wyjścia 2Poprawić argument.
OL_E_INVALID_SETTING_VALUEConfigurationCatalog.CreatePatch (start)Wartość ustawienia semantycznego jest poza zakresem, nie jest wartością logiczną, nie należy do dozwolonego zbioru lub jest niepoprawnie sformatowana (graphics.particles wymaga czterech pól). Wartości nie są walidowane na etapie planowania.Komunikat diagnostyczny sesji przez OL_E_START_SESSIONUżyć wartości z tabeli ustawień.
OL_E_SETTING_NOT_WRITABLESessionPlanner; CliInput.BuildSpecAsync; BuildTransactionalOverlaysKlucz istnieje, ale nie jest zapisywalny (advanced.multithreadingCalculate, advanced.multithreadingTextureLoad, graphics.texture, graphics.textureFilter).Komunikat diagnostyczny planu; kod wyjścia CLI 2Usunąć klucz.
OL_E_UNKNOWN_SETTINGSessionPlanner; CliInput.BuildSpecAsync; BuildTransactionalOverlaysKlucza nie ma w ConfigurationCatalog.Komunikat diagnostyczny planu; kod wyjścia CLI 2Użyć klucza z katalogu.

LaunchSpec#

KodZgłaszany przezZnaczenie / typowa przyczynaPowierzchniaCo zrobić
OL_E_SPEC_INVALIDLaunchSpecJson.ParseElement główny nie jest obiektem JSON albo deserializacja nie utworzyła rekordu.Zgłaszany (InvalidDataException), kod wyjścia CLI 2Poprawić plik (LaunchSpec).
OL_E_SPEC_NOT_FOUNDLaunchSpecJson.LoadAsyncPlik /spec nie istnieje.Zgłaszany (FileNotFoundException), kod wyjścia CLI 6Sprawdzić ścieżkę.
OL_E_SPEC_TOO_LARGELaunchSpecJson.LoadAsyncPlik przekracza 1 MiB.Zgłaszany (InvalidDataException), kod wyjścia CLI 2Zmniejszyć plik.
OL_E_SPEC_UNKNOWN_PROPERTYLaunchSpecJson.ValidateElement, który nie jest publiczną właściwością rekordu w danym miejscu; komunikat OL_E_SPEC_UNKNOWN_PROPERTY: $.Path.Name.Zgłaszany (InvalidDataException), kod wyjścia CLI 2Usunąć element lub zmienić jego nazwę.

LocalControl#

KodZgłaszany przezZnaczenie / typowa przyczynaPowierzchniaCo zrobić
OL_E_CONTROL_COMMAND_UNKNOWNProcedura obsługi właściciela (OwnerSession)Polecenie nie jest session.status, session.events, session.stop ani runtime.execute z argumentem operation.Odpowiedź sterowania; kod wyjścia CLI 7Użyć obsługiwanego polecenia.
OL_E_CONTROL_FAILEDKlient CLI (ReportForwarded, CliEventWatch)Właściciel odpowiedział Ok = false bez kodu błędu.Koperta CLI, kod wyjścia 7Przeczytać komunikat; sprawdzić konsolę/diagnostykę właściciela.
OL_E_CONTROL_HANDLER_FAILEDLocalControlPlane.ServeAsyncProcedura obsługi właściciela zgłosiła wyjątek, którego komunikat nie zawiera kodu OL_E_ (np. sesja była już zamknięta), albo nie udało się zserializować odpowiedzi procedury obsługi.Odpowiedź sterowaniaOdczytać session status; ponownie uruchomić właściciela, jeśli już nie działa.
OL_E_CONTROL_MESSAGE_INVALIDLocalControlPlane (obie strony)Prefiks długości ujemny lub większy niż 64 KiB (w tym zbyt duża ramka żądania), pusta ramka, JSON null, żądanie bez Command albo JSON, którego nie udało się zdekodować.Odpowiedź sterowania / koperta CLIStosować udokumentowany protokół (lokalna płaszczyzna sterowania).
OL_E_CONTROL_MESSAGE_TOO_LARGELocalControlPlane.TryRequestAsync (klient)Zserializowane żądanie samego klienta przekracza 64 KiB. Zgłaszane wywołującemu; nic nie zostaje wysłane.Odpowiedź sterowania / koperta CLIZmniejszyć żądanie.
OL_E_CONTROL_RESPONSE_TOO_LARGELocalControlPlane.ServeAsync (właściciel)Odpowiedź właściciela nie mieści się w ramce 64 KiB. Zamiast porzucić odpowiedź, właściciel odpowiada tym typowanym błędem. session.status i session.events nigdy do tego nie prowadzą: ich historia zdarzeń jest przycinana od najstarszych wpisów, aby się zmieściła.Odpowiedź sterowania / koperta CLIPonowić; w przypadku zdarzeń odczytywać je częściej.
OL_E_CONTROL_PROTOCOLLocalControlPlane, TryRequestBoundAsyncProtocolVersion żądania jest różne od 0.1; odpowiedzi właściciela nie udało się zdekodować lub była pusta; właściciel zamknął połączenie bez odpowiedzi lub połączenie zostało przerwane po nawiązaniu; właściciel nie podał SessionId.Odpowiedź sterowania / koperta CLIUzgodnić wersje klienta i właściciela; odczytać session status.
OL_E_CONTROL_SESSION_MISMATCHProcedura obsługi właścicielasession.stop lub runtime.execute bez session_id równego aktywnej sesji.Odpowiedź sterowania; kod wyjścia CLI 7Najpierw odczytać session.status i powiązać żądanie z sesją (CLI robi to automatycznie).

Other#

KodZgłaszany przezZnaczenie / typowa przyczynaPowierzchniaCo zrobić
OL_E_PLAN_NOT_RUNNABLEOmsiLaunchService.StartSessionAsyncPrzekazany plan ma IsRunnable = false albo ponowne planowanie przy starcie daje plan niemożliwy do uruchomienia (zmieniony Omsi.exe, usunięta zawartość, brak zestawu plików wtyczki); komunikat wymienia bieżące kody OL_E_.Zgłaszany (InvalidOperationException); kod wyjścia CLI 1Zaplanować ponownie i usunąć przyczyny wymienionych komunikatów diagnostycznych.

Presentation#

Wszystkie zgłaszane przez SessionVisualAssets (src/OmsiLaunch.Core/SessionVisualAssets.cs). Na etapie planowania są opakowywane w OL_E_SESSION_PRESENTATION_INVALID (komunikat zawiera kod); przy starcie docierają przez OL_E_START_SESSION.

KodZnaczenie / typowa przyczynaCo zrobić
OL_E_ITX_PROFILE_INVALIDPlik .itx jest pusty, ma nieparzystą liczbę niepustych wierszy albo wiersz URL nie jest bezwzględnym adresem URL http/https.Stosować pary wierszy URL/cel.
OL_E_ITX_PROFILE_MISSINGOverrideProfilePath (rozwiązywana względem katalogu roboczego procesu) nie istnieje. Zgłaszany jako FileNotFoundException.Przekazać ścieżkę istniejącego pliku .itx.
OL_E_ITX_PROFILE_REQUIREDInternetTextures.Mode ma wartość Override bez OverrideProfilePath. Kod wyjścia CLI 2 przy zgłoszeniu wyjątku.Podać /internet-textures-profile:<file.itx>.
OL_E_ITX_TARGET_OUTSIDE_TEXTURE_PATHWiersz celu jest ścieżką bezwzględną, zawiera .., zaczyna się od \, wskazuje poza instalację, nie zawiera składnika Texture\ lub przechodzi przez złącze (junction)/dowiązanie symboliczne.Stosować względne cele Texture\....
OL_E_SPLASH_ASSET_DIRECTORY_MISSINGCustomAssetDirectory nie istnieje.Poprawić katalog.
OL_E_SPLASH_ASSET_MISSINGW katalogu zasobów brakuje ENG.bmp lub <LANG>.bmp albo podczas wypełniania .omsilaunch\assets\splash brakuje spakowanego pliku assets\splash\<LANG>.bmp.Dostarczyć pliki BMP / ponownie zainstalować pakiet.
OL_E_SPLASH_FORMAT_UNSUPPORTEDPlik BMP ekranu startowego nie jest 24-bitową bitmapą BM o wymiarach 640×480.Przekonwertować obraz.

Process#

KodZgłaszany przezZnaczenie / typowa przyczynaPowierzchniaCo zrobić
OL_E_PROCESS_CLEANUP_FAILEDOmsiLaunchService (ścieżki błędu startu i usterki nadzorcy)Kończenie OMSI lub oczekiwanie na OMSI podczas sprzątania po błędzie zgłosiło wyjątek; dalej następuje komunikat wewnętrzny.Komunikat diagnostyczny sesji (dodany do sesji Failed)Upewnić się, że nie pozostał żaden Omsi.exe, a następnie wykonać /recover, jeśli transakcja oczekuje (istnieje dziennik).
OL_E_PROCESS_CREATION_TIME_FAILEDCurrentWindowsX64Platform.StartAsyncGetProcessTimes zakończyło się niepowodzeniem tuż po CreateProcessW (Win32=<code>); proces jest kończony.Komunikat diagnostyczny sesji przez OL_E_START_SESSIONPonowić; sprawdzić program antywirusowy/uprawnienia.
OL_E_PROCESS_EXITED_EARLYOmsiLaunchService.SuperviseAsyncOMSI zakończył działanie przed gameplay.entered (awaria, zamknięto okno dialogowe błędu OMSI, zamknięto okno).Komunikat diagnostyczny sesji (Failed); wykonywane jest przywracanieSprawdzić własne logi OMSI i logfile.txt; w RuntimeEvents odszukać ostatnie zdarzenie wtyczki.
OL_E_PROCESS_START_FAILEDCurrentWindowsX64Platform.StartAsyncCreateProcessW zakończyło się niepowodzeniem (Win32=<code> w komunikacie).Komunikat diagnostyczny sesji przez OL_E_START_SESSIONUsunąć przyczynę błędu Win32 (brakujący plik, odmowa dostępu, zasady).
OL_E_PROCESS_SUPERVISIONOmsiLaunchService.SuperviseAsyncPętla nadzorcy zgłosiła wyjątek (odczyt telemetrii, oczekiwanie na proces/kończenie procesu, zapis dziennika); OMSI jest kończony i podejmowana jest próba przywrócenia.Komunikat diagnostyczny sesji (Failed)Przeczytać komunikat wewnętrzny i log hosta.
OL_E_PROCESS_TERMINATE_FAILEDCurrentWindowsX64Platform.TerminateTerminateProcess zakończyło się niepowodzeniem (Win32=<code>).Wewnątrz komunikatów OL_E_PROCESS_SUPERVISION / OL_E_PROCESS_CLEANUP_FAILEDZakończyć OMSI ręcznie, a następnie wykonać /recover.
OL_E_PROCESS_WAIT_FAILEDCurrentWindowsX64Platform.WaitForExitAsyncWaitForSingleObject na uchwycie procesu zakończyło się niepowodzeniem.Wewnątrz komunikatów OL_E_PROCESS_SUPERVISION / OL_E_PROCESS_CLEANUP_FAILEDJak wyżej.

Runtime#

„Szczegół runtime” (runtime detail) oznacza ErrorCode = OL_E_RUNTIME_OPERATION_FAILED z kodem na początku Values["detail"].

KodZgłaszany przezZnaczenie / typowa przyczynaPowierzchniaCo zrobić
OL_E_CAMERA_PRESET_FAMILY_UNSUPPORTEDOmsiCameraLockWritercamera.lock z preset, gdy family ma wartość 2 (zewnętrzna) lub 3 (mapa); ustawienia wstępne istnieją tylko dla kierowcy (0) i pasażera (1).Szczegół runtimePominąć preset lub użyć rodziny 0/1.
OL_E_DATE_TIME_APPLY_FAILEDLaunchValidationTryb Date/Time Explicit bez wartości lub ze składnikami poza zakresem. Nazwa jest historyczna; jest to błąd walidacji na etapie planowania.Komunikat diagnostyczny planuPoprawić wartość (i pamiętać, że jawna data/godzina jest w tym buildzie niemożliwa do uruchomienia).
OL_E_MAKEVEHICLE_BUS_NOT_FOUNDCurrentRuntimeControl.MakeBasicRoadVehicleroad-vehicles.spawn: ścieżka .bus nie istnieje w katalogu roboczym OMSI (sprawdzane przed wywołaniem natywnym, aby OMSI nie mógł podstawić zastępczego pojazdu).Szczegół runtimeUżyć identyfikatora z vehicles list//list:vehicles.
OL_E_MAKEVEHICLE_DELTA_MULTIPLEjak wyżejNatywne MakeVehicle zmieniło kolekcję pojazdów drogowych o więcej niż jeden obiekt.Szczegół runtime (native_status, liczniki w komunikacie)Zgłosić; utworzone obiekty pozostają do końca sesji.
OL_E_MAKEVEHICLE_DELTA_ZEROjak wyżejKolekcja się nie zmieniła; OMSI po cichu odrzucił pojazd.Szczegół runtimeSprawdzić plik .bus; spróbować innego modelu.
OL_E_MAKEVEHICLE_NATIVE_FAILEDjak wyżejDowolny inny niezerowy status natywny.Szczegół runtimeZgłosić wraz z licznikami z komunikatu.
OL_E_PLACE_RANDOM_BUS_FAILEDCurrentRuntimeControl.PlaceRandomBusSprofilowane wywołanie PlaceRandomBus zwróciło status niepowodzenia.Szczegół runtimePonowić, gdy rozgrywka się ustabilizuje; zgłosić.
OL_E_RUNTIME_ARGUMENT_REQUIREDPublicCapabilityRegistry.ValidateRuntimeArguments; kontrole po stronie wtyczki (time.set bez hour/minute/second; camera.set bez family/field_of_view; camera.lock bez parsowalnego family; operacje na pojazdach/krzywych)Brak wymaganego argumentu lub jest on pusty.Wynik runtime (rejestr; kod wyjścia CLI 2) lub szczegół runtime (wtyczka)Podać argument (sterowanie runtime).
OL_E_RUNTIME_ARTIFACT_MISSINGOmsiLaunchService.PlanSessionAsyncNie można załadować referencyjnego katalogu/pliku zestawu plików wtyczki ani mostka natywnego podanego w OmsiLaunchRuntimePaths (może opakowywać OL_E_RELEASE_MANIFEST_INVALID).Komunikat diagnostyczny planuUruchamiać z nienaruszonego pakietu.
OL_E_RUNTIME_BASELINE_UNAVAILABLERuntimeBatch (/runtime-write-batch, harness INTERNAL)Bazowe time.read/camera.read zakończyło się niepowodzeniem, więc test zapisu został pominięty.Wyłącznie artefakt partii (batch)Nieprzeznaczony dla użytkowników.
OL_E_RUNTIME_BUS_IDENTITY_INVALIDCurrentRuntimeControl.ValidateBasicBusIdentitymodel jest pusty, dłuższy niż 240 znaków, zawiera NUL lub .., nie zaczyna się od Vehicles\ lub nie kończy się na .bus.Szczegół runtimePrzekazać Vehicles\<dir>\<file>.bus.
OL_E_RUNTIME_CHANNEL_BUSYbrak (zachowany dla zgodności)Nie jest już emitowany. Wcześniejsze buildy zgłaszały go, gdy anulowane żądanie pozostawało w slocie; obecnie każda ścieżka zakończenia żądania resetuje slot, a pozostałe żądanie lub odpowiedź znalezione na początku nowego żądania są usuwane.——
OL_E_RUNTIME_CHANNEL_CLOSEDOmsiLaunchService.LiveSession.RequestRuntimeAsyncSkrzynka runtime została zlikwidowana, ponieważ sesja się kończy.Zgłaszany (InvalidOperationException)Brak działań; sesja się zakończyła.
OL_E_RUNTIME_CHANNEL_STATE_INVALIDCurrentRuntimeCommandStore.RequestAsyncSlot skrzynki zawierał wartość stanu inną niż bezczynny, żądanie lub odpowiedź (uszkodzenie). Slot jest resetowany i zgłaszany jest błąd; następne żądanie działa normalnie.Zgłaszany (InvalidDataException)Ponowić; zgłosić, jeśli problem się utrzymuje.
OL_E_RUNTIME_CONSTANTS_UNAVAILABLEOmsiRuntimeReadersWskaźnik bloku stałych pojazdu ma wartość null.Szczegół runtimePojazd nie ma stałych; nie trzeba nic robić.
OL_E_RUNTIME_CONSTANT_NOT_FOUNDOmsiRuntimeReadersname nie występuje w tabeli stałych pojazdu.Szczegół runtimeNajpierw wyświetlić listę stałych.
OL_E_RUNTIME_CREATED_OBJECT_INVALIDOmsiRuntimeReaders.RegisterRoadVehicleHandleAsyncObiekt utworzony przez spawn ma VMT poza zakresem obrazu OMSI.Szczegół runtimeZgłosić.
OL_E_RUNTIME_CREATED_OBJECT_NOT_IN_COLLECTIONjak wyżejUtworzony obiekt nie znajduje się w kolekcji pojazdów drogowych.Szczegół runtimeZgłosić.
OL_E_RUNTIME_CURVE_DEGENERATEOmsiRuntimeReaders.EvaluateRoadVehicleCurveAsyncDwa kolejne punkty krzywej mają tę samą wartość X.Szczegół runtimeProblem z zawartością w krzywej pojazdu.
OL_E_RUNTIME_CURVE_EMPTYjak wyżejKrzywa nie ma punktów.Szczegół runtimeJak wyżej.
OL_E_RUNTIME_CURVE_INVALIDjak wyżejŻaden segment krzywej nie zawiera x.Szczegół runtimeObliczać wartość w dziedzinie krzywej.
OL_E_RUNTIME_CURVE_NOT_FOUNDjak wyżejname jest nieznana lub wskaźnik jej funkcji ma wartość null.Szczegół runtimeNajpierw wyświetlić listę krzywych.
OL_E_RUNTIME_HOF_UNAVAILABLEOmsiRuntimeReaders.ReadRoadVehicleHofsAsyncWskaźnik definicji pojazdu ma wartość null.Szczegół runtimeUchwyt wskazuje pojazd bez danych definicji.
OL_E_RUNTIME_INSTALLATION_INCOMPLETECliProgram.RunAsync (tryb właściciela)Obok pliku wykonywalnego brakuje plugins\OmsiLaunch.Plugin.opl lub plugins\OmsiLaunch.Native.x86.dll.Koperta CLI, kod wyjścia 7Ponownie zainstalować pakiet.
OL_E_RUNTIME_OBJECT_HANDLE_REQUIREDCurrentRuntimeControlBrak handle lub jest on pusty dla road-vehicle.read, human.read, vehicle.variables.list, vehicle.string-variables.list, vehicle.constants.list, vehicle.curves.list (zwykle rejestr odrzuca je wcześniej z OL_E_RUNTIME_ARGUMENT_REQUIRED).Szczegół runtimePodać uchwyt.
OL_E_RUNTIME_OBJECT_HANDLE_STALEOmsiRuntimeReadersUchwyt jest nieznany, obiekt opuścił kolekcję, generacja adresu się zwiększyła albo odcisk obiektu (VMT + tożsamość definicji/modelu) zmienił się, ponieważ adres został ponownie użyty. Pozostały martwy punkt: ta sama klasa i model utworzone ponownie pod tym samym adresem między dwoma odczytami listy.Szczegół runtimePonownie wykonać road-vehicles.list/humans.list i użyć nowego uchwytu.
OL_E_RUNTIME_OPERATION_FAILEDCurrentRuntimeControl.Execute; CurrentRuntimeCommandMailbox.TryDispatch; mechanizm awaryjny D3DRuntimeApiOgólne opakowanie błędów po stronie wtyczki; Values["detail"] zawiera komunikat (często z bardziej szczegółowym kodem), a Values["exception"] typ wyjątku. Na wyjątek, który wydostanie się z operacji wewnątrz dyspozytora skrzynki, również odpowiada się tym kodem (bez wartości), zamiast pozostawiać żądanie bez odpowiedzi.Wynik runtimePrzeczytać detail.
OL_E_RUNTIME_OPERATION_UNAVAILABLECurrentRuntimeControl.ExecuteWtyczka nie ma implementacji operacji, na którą zezwolił rejestr (rozbieżność wersji rejestru i wtyczki).Szczegół runtimePonownie zainstalować spójny pakiet.
OL_E_RUNTIME_OPERATION_UNKNOWNPublicCapabilityRegistry.ValidateRuntimeArgumentsOperacji nie ma w PublicRuntimeOperationIds; dotyczy to także każdej operacji internal.*. Sprawdzane przed wyszukaniem sesji.Wynik runtime; odpowiedź sterowania; kod wyjścia CLI 2Użyć publicznego identyfikatora operacji.
OL_E_RUNTIME_PLAYER_VEHICLE_UNAVAILABLEOmsiCameraLockWritercamera.lock z preset, gdy nie ma pojazdu gracza (sesje headless go nie mają). Zgłaszany także jako code zdarzenia camera.lock.degraded, gdy ponowne zastosowanie się nie powiedzie.Szczegół runtime / zdarzenie runtimeZablokować kamerę bez ustawienia wstępnego lub użyć sesji z pojazdem gracza.
OL_E_RUNTIME_PROTOCOL_MISMATCHD3DRuntimeApiUdany wynik D3D nie zawierał wartości albo nieznany ciąg stanu urządzenia.Zgłaszany (OmsiRuntimeException)Uzgodnić wersje hosta i wtyczki.
OL_E_RUNTIME_REQUEST_ID_REUSEDCurrentRuntimeCommandStore.RequestAsyncSlot zawiera nieaktualną odpowiedź z tym samym identyfikatorem żądania co nowe żądanie. Nieaktualna odpowiedź jest usuwana przed zgłoszeniem błędu.Zgłaszany (InvalidOperationException)Używać ściśle rosnących identyfikatorów żądań.
OL_E_RUNTIME_REQUEST_TIMEOUTCurrentRuntimeCommandStore.RequestAsyncBrak odpowiedzi w czasie timeout; slot jest resetowany, a spóźniona odpowiedź odrzucana.Zgłaszany (TimeoutException); kod wyjścia CLI 5Ponowić z dłuższym limitem czasu; sprawdzić, czy OMSI nie jest zablokowany (modalne okno dialogowe, ładowanie).
OL_E_RUNTIME_RESPONSE_INVALIDCurrentRuntimeCommandStoreKoperta odpowiedzi jest uszkodzona, ma błędną długość (ujemną, zerową lub większą niż slot), obcy identyfikator sesji lub inny identyfikator żądania. Slot jest resetowany przed zgłoszeniem błędu, więc następne żądanie działa normalnie.Zgłaszany (InvalidDataException)Ponowić; zgłosić, jeśli problem się utrzymuje.
OL_E_RUNTIME_RESPONSE_TOO_LARGECurrentRuntimeCommandMailbox.TryDispatchZserializowany wynik przekracza skrzynkę 64 KiB. Wyniki list ograniczonych (zawierające returned_count i truncated) są zamiast tego skracane tak, aby się zmieściły (audyt dokumentacji BUG-05); w praktyce kod pozostaje osiągalny dla timetable.logs.read, która nie jest ograniczona.Wynik runtimeUżyć węższej operacji (np. road-vehicles.read zamiast road-vehicles.list przy ogromnych kolekcjach).
OL_E_RUNTIME_SCRIPT_OBJECT_UNAVAILABLEOmsiRuntimeReadersWskaźnik definicji skryptu lub stanu pojazdu ma wartość null.Szczegół runtimePojazd nie ma obiektów skryptu.
OL_E_RUNTIME_SESSION_MISMATCHOmsiLaunchService.ExecuteRuntimeAsync; CurrentRuntimeCommandStore; skrzynka wtyczkiRuntimeCommand.SessionId różni się od identyfikatora sesji uchwytu (zgłaszane przez hosta) albo żądanie trafiło do wtyczki powiązanej z inną sesją (zwracane przez wtyczkę jako typowany wynik).Zgłaszany (InvalidOperationException) / runtime resultBudować polecenie z session.SessionId.
OL_E_RUNTIME_SETTING_NOT_PERSISTENTCurrentRuntimeControl.SetWeatherweather.set jest zawsze odrzucane: OMSI nadpisuje sprofilowane pola pogody przy następnym takcie pogody, więc zapisu nie można zgłosić jako zmiany semantycznej.Wynik runtimeBrak działań; weather.set ma status UNAVAILABLE.
OL_E_RUNTIME_SETTING_UNAVAILABLEOmsiWeatherWriterNieznana nazwa pola pogody. Obecnie nieosiągalny, ponieważ weather.set jest odrzucane wcześniej.Szczegół runtime (zdefiniowany)Zob. źródło src/OmsiLaunch.Interop/OmsiWeatherWriter.cs.
OL_E_RUNTIME_STRING_VARIABLE_NOT_FOUNDOmsiRuntimeReadersname nie występuje w tabeli zmiennych tekstowych.Szczegół runtimeNajpierw wyświetlić listę zmiennych tekstowych.
OL_E_RUNTIME_VALUE_INVALIDOmsiWeatherWriter.ParseBooleanWartość logiczna pogody nie jest true/false/1/0. Obecnie nieosiągalny (zob. wyżej).Szczegół runtime (zdefiniowany)Zob. źródło.
OL_E_RUNTIME_VALUE_OUT_OF_RANGECurrentRuntimeControl, OmsiCameraWriter, OmsiCameraLockWriter, OmsiRuntimeReaders, OmsiWeatherWritertime.set: hour 0..23, minute 0..59, second 0..59.999; camera.set: family 0..3, field_of_view 10..170; camera.lock: preset nie jest liczbą całkowitą, family 0..3, preset 0..255; road-vehicles.place-random: ai_type 0..255, group/type/tour/line 0..65535 (type może mieć wartość -1), scheduled 0..1; vehicle.variable.set: value nie jest skończona; vehicle.curve.evaluate: x nie jest skończone.Szczegół runtimeUżyć wartości z zakresu.
OL_E_RUNTIME_VARIABLE_NOT_FOUNDOmsiRuntimeReadersname nie występuje w tabeli zmiennych liczbowych.Szczegół runtimeNajpierw wyświetlić listę zmiennych.
OL_E_RUNTIME_VARIABLE_UNAVAILABLEOmsiRuntimeReadersSlot zmiennej lub adres wartości ma wartość null.Szczegół runtimeZmienna nie jest zmaterializowana dla tego pojazdu.
OL_E_TIME_APPLY_FAILEDCurrentRuntimeControl.SetTimeSkalary zegara zostały zapisane, ale sprofilowane natywne wywołanie SetTime zwróciło niepowodzenie.Szczegół runtimePonowić; odczytać wartość z powrotem za pomocą time.read.

RuntimeD3D#

Wszystkie zgłaszane przez CurrentRuntimeControl (mapowanie statusu natywnego w ThrowD3D; detail zawiera operację i HRESULT, native_status – status liczbowy). Powierzchnia: runtime result z kodem w ErrorCode; D3DRuntimeApi zgłasza go ponownie jako OmsiRuntimeException.

KodStatus natywny / przyczynaCo zrobić
OL_E_D3D_DEVICE_LOST8: utrata urządzenia Direct3D.Poczekać na d3d.restored; utworzyć tekstury ponownie (zmieniła się generacja).
OL_E_D3D_INVALID_ARGUMENT14: brakujące lub nieprawidłowe width, height, level, x, y, format lub handle (zakresy: width/height 1..4096, levels 0..16, level 0..15, x/y 0..4095).Poprawić argumenty.
OL_E_D3D_INVALID_PIXEL_BUFFERpixels_base64 nie jest prawidłowym ciągiem Base64 lub przekracza 48 KiB.Wysyłać mniejsze prostokąty.
OL_E_D3D_INVALID_TEXTURE_FORMAT6 albo nieznana nazwa format (prawidłowe: A8R8G8B8, X8R8G8B8, R5G6B5, X1R5G5B5, A1R5G5B5, A4R4G4B4, A8, L8, A8L8).Użyć formatu z listy.
OL_E_D3D_NATIVE_CALL_FAILEDDowolny inny status; HRESULT znajduje się w detail.Zgłosić wraz z HRESULT.
OL_E_D3D_NOT_READY7: urządzenie nie jest gotowe (przed pierwszą klatką lub podczas zatrzymywania).Ponowić po d3d.ready.
OL_E_D3D_RESET_IN_PROGRESS9: trwa reset urządzenia.Ponowić po d3d.restored.
OL_E_D3D_RESOURCE_RELEASED13: uchwyt tekstury został już zwolniony.Nie używać ponownie zwolnionych uchwytów.
OL_E_D3D_STALE_RESOURCE_HANDLE12: uchwyt należy do poprzedniej generacji urządzenia; albo ciąg uchwytu nie ma postaci d3dtex-<session>-<hex> / jest zerowy.Utworzyć teksturę ponownie.

Session#

KodZgłaszany przezZnaczenie / typowa przyczynaPowierzchniaCo zrobić
OL_E_CAPABILITY_UNAVAILABLESessionPlanner; ApplyTelemetry przy plugin.request.unsupportedPlan: zażądano LastMapState, EntrypointIdentity, trybu daty/godziny/roku, trybu pogody, pól pojazdu gracza lub dokumentów wejściowych (Requested capability unavailable: <name>). Telemetria: wtyczka odrzuciła przekazanie (handoff) (nie może się to zdarzyć dla planu możliwego do uruchomienia).Komunikat diagnostyczny planu; komunikat diagnostyczny sesjiUsunąć nieobsługiwane żądanie (znane ograniczenia).
OL_E_HEADLESS_ARM_FAILEDApplyTelemetry przy headless.arm.failedWtyczka nie mogła uzbroić jednorazowego haka startu headless w OMSI.Komunikat diagnostyczny sesji (Failed)Zweryfikować build; zgłosić.
OL_E_NO_ACTIVE_SESSIONKlient CLI (ReportForwarded, CliEventWatch)Żaden właściciel nie odpowiada na potoku sterowania instalacji (brak sesji albo właściciel nadal się uruchamia lub przeprowadza walidację).Koperta CLI, kod wyjścia 4Uruchomić sesję lub poczekać, aż osiągnie stan Running.
OL_E_PLUGIN_NOT_LOADEDSuperviseAsyncUpłynął StartupTimeoutSeconds przed plugin.started (OMSI nie załadował plugins\OmsiLaunch.Plugin.opl lub utknął przed inicjalizacją wtyczki).Komunikat diagnostyczny sesji (Failed)Sprawdzić zestaw plików wtyczki, plugins\OmsiLaunch.Plugin.opl i plik logfile.txt OMSI.
OL_E_PLUGIN_PROTOCOL_MISMATCHApplyTelemetry przy plugin.handoff.invalid lub niemożliwym do sparsowania JSON-ie telemetriiWtyczka nie mogła odczytać/zweryfikować przekazania startowego (wersja 3/4, SHA-256) albo wysłała nieprawidłową telemetrię.Komunikat diagnostyczny sesji (Failed)Uzgodnić wersje hosta i wtyczki (ponownie zainstalować pakiet).
OL_E_SESSION_ALREADY_ACTIVECliProgram.RunAsyncWłaściciel już odpowiada na session.status dla tej instalacji.Koperta CLI, kod wyjścia 7Używać poleceń klienta (session status, session stop, polecenia runtime).
OL_E_SESSION_NOT_RUNNINGOmsiLaunchService.ExecuteRuntimeAsyncStan sesji nie jest Running.Zgłaszany (InvalidOperationException)Najpierw wywołać WaitForAsync(session, SessionState.Running, ...).
OL_E_SESSION_PRESENTATION_INVALIDSessionPlannerNie udało się zbudować planu ekranu startowego/ITX; komunikat zawiera kod prezentacji.Komunikat diagnostyczny planuZob. Presentation.
OL_E_SESSION_START_FAILEDWindowsHost.ShowFailure (okno dialogowe OmsiLaunchW)Kod zastępczy wyświetlany, gdy plan uruchomienia jest niemożliwy do uruchomienia lub sesja nie dotarła do rozgrywki, a nie istnieje żaden komunikat diagnostyczny OL_E_.Wyłącznie okno komunikatuPrzeczytać .omsilaunch\diagnostics.
OL_E_SITUATION_LOAD_FAILEDApplyTelemetry przy world.situation.failedNatywny start zapisanej sytuacji zwrócił niepowodzenie (native_status w zdarzeniu).Komunikat diagnostyczny sesji (Failed)Sprawdzić plik .osn i jego mapę.
OL_E_STARTUP_TIMEOUTSuperviseAsyncWtyczka się uruchomiła, ale stan Running nie został osiągnięty w czasie StartupTimeoutSeconds.Komunikat diagnostyczny sesji (Failed)Zwiększyć /startup-timeout dla dużych map; w RuntimeEvents sprawdzić ostatnie zdarzenie świata.
OL_E_START_SESSIONOmsiLaunchService.StartAsyncDowolny wyjątek na ścieżce startu; komunikatem jest komunikat wewnętrzny (zwykle zaczynający się od kodu wewnętrznego).Komunikat diagnostyczny sesji (Failed)Postępować zgodnie z kodem wewnętrznym.
OL_E_WORLD_START_FAILEDApplyTelemetry przy world.failedNatywny start NEW_MAP zwrócił niepowodzenie (native_status w zdarzeniu).Komunikat diagnostyczny sesji (Failed)Sprawdzić mapę, indeks punktu wejścia i logi OMSI.

SessionProfile#

Wszystkie zgłaszane przez SessionProfileCompiler (src/OmsiLaunch.Core/SessionProfiles.cs) lub CliInput jako SessionProfileException (IOException z Code), kod wyjścia CLI 2. Zob. profile sesji.

KodZnaczenie / typowa przyczynaCo zrobić
OL_E_SESSION_PROFILE_ASSET_MISSINGKatalog assets ekranu startowego ustawienia wstępnego lub plik profile tekstur internetowych nie istnieje wewnątrz pakietu.Dodać zasób.
OL_E_SESSION_PROFILE_INVALIDNaruszenie struktury lub limitu: ponad 256 KiB, nie dokładnie jedno mapowanie główne, kotwice YAML, nieznany klucz, brak wymaganego klucza, wartość nieskalarna tam, gdzie wymagany jest skalar, id różne od nazwy katalogu, ustawienia wstępne spoza 1..5 lub zduplikowany index, niedodatnie limity czasu, nieobsługiwany tryb pogody/ekranu startowego/tekstur internetowych, data/godzina inna niż explicit, nieprawidłowy YAML, błędy parsowania liczb/dat.Poprawić YAML zgodnie z komunikatem.
OL_E_SESSION_PROFILE_MAP_MISMATCHcompatibility.maps nie jest puste i nie zawiera wybranej mapy (NEW_MAP) ani mapy wybranej sytuacji (SAVED_SITUATION).Wybrać zgodny świat.
OL_E_SESSION_PROFILE_NOT_FOUND<root>\.omsilaunch\session-profiles\<id>\profile.yaml nie istnieje.Sprawdzić identyfikator.
OL_E_SESSION_PROFILE_OVERRIDE_CONFLICTJawny argument CLI dotyczy pola należącego do wybranego profilu/ustawienia wstępnego.Usunąć flagę lub wybrać inne ustawienie wstępne.
OL_E_SESSION_PROFILE_PATH_ESCAPEIdentyfikator zawiera \, /, : lub ..; albo ścieżka zasobu jest bezwzględna, wychodzi poza pakiet lub przechodzi przez złącze (junction)/dowiązanie symboliczne.Utrzymywać ścieżki wewnątrz pakietu.
OL_E_SESSION_PROFILE_PRESET_NOT_FOUNDBrak /predefined-profile-index, wartość spoza 1..5 lub niezadeklarowana przez profil.Użyć zadeklarowanego indeksu ustawienia wstępnego.
OL_E_SESSION_PROFILE_SCHEMA_UNSUPPORTEDschema nie jest omsilaunch.session-profile/v1.Użyć obsługiwanego schematu.
OL_E_SESSION_PROFILE_SETTING_NOT_WRITABLEKlucz ustawienia w ustawieniu wstępnym jest znany, ale nie jest zapisywalny.Usunąć klucz.
OL_E_SESSION_PROFILE_SETTING_UNKNOWNKlucza ustawienia w ustawieniu wstępnym nie ma w katalogu.Użyć klucza z katalogu.

Transaction#

Zob. transakcje i odzyskiwanie.

KodZgłaszany przezZnaczenie / typowa przyczynaPowierzchniaCo zrobić
OL_E_CLOSECHECK_REMOVE_FAILEDOmsiLaunchService.RemoveStaleClosecheckNieaktualny plik closecheck nadal istnieje po File.Delete.Komunikat diagnostyczny sesji przez OL_E_START_SESSIONRęcznie usunąć <root>\closecheck (uprawnienia).
OL_E_RECOVERY_ABSENT_OWNERSHIP_MISMATCHFileConfigurationTransaction.RestoreAsyncŚcieżka, która nie istniała przed sesją, zawiera teraz treść różną od tej, którą zastosowała sesja; nie jest usuwana, a dziennik zostaje zachowany.Zgłaszany (IOException); wewnątrz OL_E_RESTORE_FAILED / OL_E_START_SESSION; kod wyjścia CLI 8Sprawdzić plik; usunąć go lub przenieść, a następnie wykonać /recover.
OL_E_RECOVERY_ABSENT_OWNERSHIP_UNVERIFIEDRestoreAsync (dziennik sprzed odcisków)Dziennik nie ma odcisku zastosowanej treści dla ścieżki pierwotnie nieistniejącej, która nie jest ścieżką usunięcia, więc nie można udowodnić własności. Przy starcie sesji odzyskiwanie jest odraczane i ponawiane z zaplanowanymi bajtami tej sesji; przez RecoverPendingAsync wyjątek jest zgłaszany.Zgłaszany (IOException); kod wyjścia CLI 8Uruchomić sesję z tą samą specyfikacją (dostarcza bajty) albo sprawdzić i usunąć plik, a następnie wykonać /recover.
OL_E_RECOVERY_BACKUP_CORRUPTRestoreAsyncSHA-256 kopii zapasowej nie odpowiada migawce zapisanej w dzienniku; nic nie jest zapisywane.Zgłaszany; wewnątrz OL_E_RESTORE_FAILED; kod wyjścia CLI 8Przywrócić plik z własnej kopii zapasowej; dziennik usunąć dopiero wtedy, gdy nie ma co do tego wątpliwości.
OL_E_RECOVERY_JOURNAL_MISSINGRestoreAsyncMigawki istnieją w pamięci, ale brakuje journal.json (usunięty w trakcie sesji).Zgłaszany; wewnątrz OL_E_RESTORE_FAILEDRęcznie zweryfikować pliki sesji.
OL_E_RECOVERY_JOURNAL_REMOVE_FAILEDFileConfigurationTransaction.RemoveJournaljournal.json nadal istnieje po usunięciu (samo przywrócenie się powiodło i zostało zweryfikowane).Zgłaszany; wewnątrz OL_E_RESTORE_FAILED; kod wyjścia CLI 8Usunąć <root>\.omsilaunch\journal.json (uprawnienia) lub ponownie uruchomić /recover (operacja idempotentna).
OL_E_RESTORE_DEFERREDOmsiLaunchService (błąd startu / nadzorca)Nie udało się potwierdzić zakończenia OMSI, więc pliki nie zostały zastąpione, póki OMSI może ich jeszcze używać; dziennik zostaje zachowany.Komunikat diagnostyczny sesji (Failed)Po zakończeniu Omsi.exe uruchomić /recover (lub następny start przeprowadzi odzyskiwanie automatycznie).
OL_E_RESTORE_FAILEDOmsiLaunchService (błąd startu / nadzorca)RestoreAsync zgłosiło wyjątek; komunikat zawiera kod wewnętrzny; dziennik zostaje zachowany.Komunikat diagnostyczny sesji (Failed); kod wyjścia CLI 8 przy zgłoszeniu z /recoverPostępować zgodnie z kodem wewnętrznym, a następnie wykonać /recover.

Warning#

KodZgłaszany przezZnaczeniePowierzchniaCo zrobić
OL_W_RESTORE_FOREIGN_FILE_RETAINEDFileConfigurationTransaction.RestoreAsyncŚcieżka usuwana przez sesję (cel ITX, Texture\standard.ipr, closecheck) nie istniała przed sesją i istnieje teraz, ale w ramach tego dziennika nigdy nie uruchomiono żadnego procesu OMSI, więc plik nie może być produktem ubocznym sesji. Zostaje zachowany i zgłoszony (komunikat = ścieżka względna, Data["sha256"]); transakcja mimo to się kończy.Komunikat diagnostyczny sesji / RecoveryStatus.Diagnostics (bez wpływu na stan)Sprawdzić plik; w razie potrzeby usunąć go samodzielnie.

Kody diagnostyczne niebędące błędami#

KodEmitowany przezKomunikat / daneZnaczenie
process.startedOmsiLaunchService.LiveSession.Attachkomunikat = PID; Data["thread_id"], Data["creation_utc"] (ISO 8601)Utworzono Omsi.exe i zapisano jego tożsamość. Komunikat diagnostyczny sesji.
closecheck.stale-removedOmsiLaunchService.RemoveStaleClosecheckkomunikat = SHA-256 usuniętego plikuPlik closecheck istniejący przed sesją został trwale usunięty (SuppressStaleClosecheckWarning = true). Komunikat diagnostyczny sesji.
restore.session-artifact-removedFileConfigurationTransaction.RestoreAsynckomunikat = ścieżka względna; Data["sha256"]Ścieżka usuwana przez sesję została ponownie utworzona przez OMSI w trakcie sesji, której proces się uruchomił; usunięto ją, aby przywrócić pierwotny stan nieistnienia. Komunikat diagnostyczny sesji / RecoveryStatus.Diagnostics.
plugin.integrity.referenceOmsiLaunchService.PlanSessionAsynckomunikat = manifest lub selfKtóra referencja jest używana przy walidacji stałej wtyczki. Komunikat diagnostyczny planu.
session_profile.selectedSessionPlannerkomunikat = identyfikator profilu; Data["session_profile.id|name|version|author|preset_id|preset_index|preset_name|path"]Pochodzenie sesji skompilowanej z profilu sesji. Komunikat diagnostyczny planu.

Nazwy zdarzeń runtime (RuntimeEvent.Type, nie są to komunikaty diagnostyczne) wymieniono w opisie cyklu życia sesji.