Fehler- und Diagnosecodes

Dokumentation für Version v0.1.0-beta.3Quelle auf GitHub ansehen

Übersetzung der englischen Originalseite für OmsiLaunch 0.1.0-beta3. Maßgeblich ist die englische Seite: Bei Abweichungen gelten die englische Seite und der Code.

Diese Seite ist die normative Referenz für jeden Code in PublicErrorCodes (src/OmsiLaunch.Api/PublicErrorCodes.cs): 142 OL_E_-Fehlercodes und eine OL_W_-Warnung, gruppiert nach Katalogkategorie, dazu die informativen Diagnosecodes, die keine Fehler sind. Für jeden Code gibt sie an, wo der aktuelle Code ihn auslöst, was er bedeutet, wie er Sie erreicht (ausgelöste Exception, Ergebnisfeld, Diagnose, Antwort der Steuerungsebene (Control Plane) oder CLI-Envelope) und was zu tun ist. Die Bedeutungen sind den Auslösestellen entnommen; wo ein Code definiert ist, aber derzeit keinen Auslösepfad hat, wird dies auf der Seite angegeben.

Verwandte Seiten: öffentliche API, Exitcodes, LaunchSpec, Sitzungslebenszyklus, Transaktionen und Recovery, lokale Steuerungsebene, Runtime-Steuerung, Sitzungsprofile, permanentes Plugin.

Wie Codes Sie erreichen#

OberflächeBedeutung
AusgelöstEine Exception, deren Message mit dem Code beginnt (InvalidOperationException, IOException, TimeoutException, InvalidDataException, FileNotFoundException, ArgumentException, SessionProfileException). Die CLI extrahiert den Code aus der Meldung und ordnet ihn einem Exitcode zu (CliProgram.Classify).
PlandiagnoseEine LaunchDiagnostic in SessionPlan.Diagnostics; jeder OL_E_-Code setzt IsRunnable auf false (CLI: Plan NOT RUNNABLE, Exitcode 1).
SitzungsdiagnoseEine LaunchDiagnostic in SessionStatus.Diagnostics; der Sitzungszustand ist Failed (CLI-Exitcode 1). OL_E_START_SESSION, OL_E_PROCESS_SUPERVISION und OL_E_RESTORE_FAILED umschließen in ihrer Meldung einen inneren Code.
Runtime-ErgebnisRuntimeCommandResult.ErrorCode mit Succeeded = false.
Runtime-DetailRuntimeCommandResult.ErrorCode = OL_E_RUNTIME_OPERATION_FAILED und der spezifische Code als erstes Token von Values["detail"] (mit Values["exception"]). Auf diese Weise wird jeder Plugin-seitige InvalidOperationException/ArgumentException-Code gemeldet.
SteuerungsantwortErrorCode einer Antwort der lokalen Steuerungsebene (LocalControlResponse).
CLI-Envelopeerror.code im --json-Envelope oder <code>: <message> auf der Konsole; der Exitcode ist angegeben.
TelemetrieEin Runtime-Ereignisname, den der Host einer Sitzungsdiagnose zuordnet.

CLI#

CodeAusgelöst vonBedeutung / typische UrsacheOberflächeVorgehen
OL_E_CANCELLEDCliProgram.ClassifyEine OperationCanceledException ist nach außen gelangt (Ctrl+C oder ein abgebrochenes Warten des Clients).CLI-Envelope, Exitcode 7Wiederholen Sie den Befehl.
OL_E_INTERNALCliProgram.ClassifyEine Exception ohne OL_E_-Code ist nach außen gelangt: fehlerhaftes /spec-JSON, ein erforderliches Spec-Element mit null, ein unerwarteter Fehler.CLI-Envelope, Exitcode 10Lesen Sie die Meldung und <root>\.omsilaunch\diagnostics\<sessionId>-host.log; korrigieren Sie die Eingabe; melden Sie den Fall, wenn er ungeklärt bleibt.
OL_E_TIMEOUTCliProgram.Classify; LocalControlPlane.TryRequestAsyncEine TimeoutException ohne Code ist nach außen gelangt; oder der Client der lokalen Steuerung war mit einem Eigentümer verbunden, der nicht innerhalb des Timeouts geantwortet hat (der Eigentümer existiert, daher wird dies nicht als OL_E_NO_ACTIVE_SESSION gemeldet). (Mailbox-Timeouts tragen stattdessen OL_E_RUNTIME_REQUEST_TIMEOUT.)CLI-Envelope, Steuerungsantwort; Exitcode 5 aus Classify, Exitcode 7 bei einer SteuerungsantwortWiederholen Sie den Vorgang; prüfen Sie, ob OMSI und der Eigentümer reagieren.
OL_E_WINDOWS_HOST_MISSINGCliProgram.RunAsync (/silent)OmsiLaunchW.exe liegt nicht neben OmsiLaunch.exe.CLI-Envelope, Exitcode 7Installieren Sie das Paket neu.
OL_E_WINDOWS_HOST_START_FAILEDCliProgram.RunAsync (/silent)Process.Start von OmsiLaunchW.exe hat keinen Prozess zurückgegeben.CLI-Envelope, Exitcode 7Prüfen Sie die Paketdateien und Berechtigungen; führen Sie den Befehl ohne /silent aus, um den Fehler zu sehen.

Kompatibilität#

CodeAusgelöst vonBedeutung / typische UrsacheOberflächeVorgehen
OL_E_BUILD_VALIDATION_FAILEDOmsiLaunchService.ApplyTelemetry bei plugin.build.invalidDie prozessinterne Build-Prüfung des Plugins (Profil Omsi23004_692EBFBF plus native VMT-Prüfung) ist fehlgeschlagen, obwohl der Host die ausführbare Datei akzeptiert hat, z. B. ein in der Allow-List enthaltener Steam-LAA-Build mit abweichendem Speicherlayout oder ein gepatchtes OMSI.Sitzungsdiagnose (Failed)Verwenden Sie den zur Laufzeit validierten Build; siehe Kompatibilität.
OL_E_UNSUPPORTED_BUILDSessionPlanner (omsi.profile.OMSI23004 nicht verfügbar)Omsi.exe fehlt, oder ihre Größe/ihr SHA-256 stimmt weder mit dem Profil-Fingerprint noch mit der Allow-List überein.PlandiagnoseInstallieren Sie den unterstützten OMSI-2.3.004-Build.
OL_E_UNSUPPORTED_OPERATING_SYSTEMSessionPlanner (runtime.current-windows-x64 nicht verfügbar); außerdem ausgelöst von CurrentWindowsX64Platform.ValidateCurrent, das der Dienst nicht aufruftNicht Windows 10 oder neuer, oder das Betriebssystem bzw. der Host-Prozess ist nicht x64.Plandiagnose (CLI-Exitcode 3, wenn ausgelöst)Führen Sie OmsiLaunch unter 64-Bit-Windows 10 oder neuer aus.
OL_E_UNSUPPORTED_OS_ARCHITECTUREnur CurrentWindowsX64Platform.ValidateCurrentDie Architektur von Betriebssystem oder Host ist nicht x64. Der Dienst ruft ValidateCurrent nicht auf; derzeit kein Auslösepfad.Nur von dieser Methode ausgelöst (PlatformNotSupportedException)Siehe Quelltext src/OmsiLaunch.Process/RuntimePlatform.cs.

Inhalte#

CodeAusgelöst vonBedeutung / typische UrsacheOberflächeVorgehen
OL_E_ENTRYPOINT_NOT_FOUNDLaunchValidationNEW_MAP ohne EntrypointIdentity und mit nicht gesetztem oder negativem PresentedEntrypointIndex.PlandiagnoseSetzen Sie PresentedEntrypointIndex (/entrypoint-index:<n>); ermitteln Sie Einstiegspunkte mit /list:entrypoints /map:<id>.
OL_E_ENTRYPOINT_REQUIREDSessionPlanner (world.presented-entrypoint nicht verfügbar)Die NEW_MAP-Karte wurde aufgelöst, aber es gibt weder einen angezeigten Index noch eine Identität. Tritt immer zusammen mit OL_E_ENTRYPOINT_NOT_FOUND auf.PlandiagnoseWie oben.
OL_E_HOF_NOT_FOUNDSessionPlannerPlayerVehicle.Hof ist keine installierte Vehicles\...\*.hof.PlandiagnoseVerwenden Sie eine Identität aus /list:hofs. (Felder des Spielerfahrzeugs sind auf diesem Build ohnehin nicht ausführbar.)
OL_E_MAP_NOT_FOUNDLaunchValidation; SessionPlannerValidierung: NEW_MAP mit nicht gesetzter MapIdentity oder einer, die nicht die Form maps\<dir>\global.cfg hat. Planer: Die Karte ist nicht installiert.PlandiagnoseVerwenden Sie eine Identität aus /list:maps.
OL_E_NOT_FOUNDCliProgram.ClassifyEine FileNotFoundException/DirectoryNotFoundException ohne Code ist nach außen gelangt, z. B. /list:repaints mit unbekanntem /vehicle-scope oder /list:entrypoints mit unbekanntem /map.CLI-Envelope, Exitcode 6Korrigieren Sie die Identität.
OL_E_REPAINT_NOT_FOUNDSessionPlannerPlayerVehicle.Repaint ist kein .cti-Eintrag des Modells (nur geprüft, wenn Model gesetzt ist).PlandiagnoseVerwenden Sie eine Identität aus /list:repaints /vehicle-scope:<bus>.
OL_E_SITUATION_MAP_NOT_FOUNDSessionPlannerDie in der ausgewählten .osn referenzierte Karte ist nicht installiert.PlandiagnoseInstallieren Sie die Karte oder wählen Sie eine andere Situation.
OL_E_SITUATION_NOT_FOUNDLaunchValidation; SessionPlannerSAVED_SITUATION ohne SituationIdentity, oder die .osn ist nicht installiert.PlandiagnoseVerwenden Sie eine Identität aus /list:situations.
OL_E_VEHICLE_NOT_FOUNDSessionPlannerPlayerVehicle.Model ist keine installierte Vehicles\...\*.bus.PlandiagnoseVerwenden Sie eine Identität aus /list:vehicles.

Installation#

CodeAusgelöst vonBedeutung / typische UrsacheOberflächeVorgehen
OL_E_INSTALLATION_BUSYInstallationLease.Acquire; OmsiLaunchService.RecoverPendingAsync; FileConfigurationTransaction.RestorePendingAsyncDie Installations-Lease (Local\OmsiLaunch.Installation.<hash>) wird in dieser Anmeldesitzung von einem anderen Eigentümer gehalten, oder ein im Journal erfasster OMSI-Prozess (PID + Erstellungszeit + Pfad der ausführbaren Datei; oder eine beliebige Omsi.exe aus dem Stammverzeichnis bei einem Journal nach HandoffCreated ohne PID) läuft noch.Start: Sitzungsdiagnose über OL_E_START_SESSION. Recovery: ausgelöst (InvalidOperationException / IOException). CLI-Exitcode 7.Stoppen Sie den anderen Eigentümer (session stop) oder warten Sie, bis OMSI beendet ist, und wiederholen Sie den Vorgang oder führen Sie /recover aus.
OL_E_INSTALLATION_NOT_FOUNDLaunchValidationInstallation.RootPath ist leer.PlandiagnoseÜbergeben Sie das Installationsverzeichnis.
OL_E_INSTALLATION_NOT_WRITABLESessionPlanner (transaction.exact-restore nicht verfügbar); außerdem ValidateCurrentDas Stammverzeichnis existiert nicht, hat das Schreibschutzattribut oder kein plugins\-Verzeichnis.PlandiagnoseVerweisen Sie auf eine echte, beschreibbare OMSI-Installation.
OL_E_PERMANENT_PLUGIN_HASH_MISMATCHRuntimeArtifactSet.ValidateInstalled (Plan und Start)Eine installierte plugins\OmsiLaunch.*-Datei weicht vom Hash in release-manifest.json ab (oder ohne Manifest von der Referenz-Closure).Plandiagnose (Plan nicht ausführbar, CLI-Exitcode 1); Sitzungsdiagnose über OL_E_START_SESSION nur, wenn sich die Dateien zwischen Planung und Start ändernInstallieren Sie das OmsiLaunch-Paket neu, sodass plugins\ und das Manifest übereinstimmen.
OL_E_PERMANENT_PLUGIN_MANIFEST_INCOMPLETERuntimeArtifactSet.ValidateInstalled (Plan und Start)Das Manifest hat keinen Eintrag für eine erforderliche Plugin-Datei.Plandiagnose; Sitzungsdiagnose über OL_E_START_SESSION bei derselben Race Condition wie obenInstallieren Sie das Paket neu.
OL_E_PERMANENT_PLUGIN_MISSINGRuntimeArtifactSet.ValidateInstalled (Plan und Start)Eine erforderliche plugins\OmsiLaunch.*-Datei fehlt in der OMSI-Installation, oder eine in release-manifest.json aufgeführte plugins/-Datei ist nicht installiert.Plandiagnose; Sitzungsdiagnose über OL_E_START_SESSION bei derselben Race Condition wie obenInstallieren Sie die permanente Plugin-Gesamtheit (Closure) (Installation).
OL_E_PLATFORM_CAPABILITY_MISSINGnur CurrentWindowsX64Platform.ValidateCurrentCurrentPlatformSupported ist false. Wird vom Dienst nicht aufgerufen; derzeit kein Auslösepfad.Nur von dieser Methode ausgelöstSiehe Quelltext.
OL_E_RELEASE_MANIFEST_INVALIDReleaseManifest.TryReadPluginHashes / ParsePluginHashesrelease-manifest.json ist leer, ist kein JSON, hat kein files-Array oder enthält einen Eintrag ohne path/sha256, einen Hash, der nicht aus 64 Hexadezimalziffern besteht, einen Pfad, der absolut ist, : enthält, ein leeres, .- oder ..-Segment hat, oder einen doppelt aufgeführten Pfad (Vergleich ohne Berücksichtigung der Groß-/Kleinschreibung, / und \ gleichwertig). Ein UTF-8-BOM wird akzeptiert.Plan: umschlossen von OL_E_RUNTIME_ARTIFACT_MISSING; Start: über OL_E_START_SESSIONInstallieren Sie das Paket neu.

InvalidArgument#

CodeAusgelöst vonBedeutung / typische UrsacheOberflächeVorgehen
OL_E_INVALID_ARGUMENTLaunchValidation; CliInput.Parse/ClassifyValidierung: Date.Value/Time.Value gesetzt, obwohl der Modus nicht Explicit ist. CLI: unbekanntes Flag, fehlender Wert, ungültige Ganzzahl oder ungültiger Bereich, /saved kombiniert mit /map//entrypoint, unbekannte Befehlsroute, jede ArgumentException/FormatException ohne Code.Plandiagnose; CLI-Envelope, Exitcode 2Korrigieren Sie das Argument.
OL_E_INVALID_SETTING_VALUEConfigurationCatalog.CreatePatch (Start)Ein semantischer Einstellungswert liegt außerhalb des Bereichs, ist nicht boolesch, nicht in der zulässigen Menge oder fehlerhaft (graphics.particles benötigt vier Felder). Werte werden zur Planungszeit nicht validiert.Sitzungsdiagnose über OL_E_START_SESSIONVerwenden Sie einen Wert aus der Einstellungstabelle.
OL_E_SETTING_NOT_WRITABLESessionPlanner; CliInput.BuildSpecAsync; BuildTransactionalOverlaysDer Schlüssel existiert, ist aber nicht beschreibbar (advanced.multithreadingCalculate, advanced.multithreadingTextureLoad, graphics.texture, graphics.textureFilter).Plandiagnose; CLI-Exitcode 2Entfernen Sie den Schlüssel.
OL_E_UNKNOWN_SETTINGSessionPlanner; CliInput.BuildSpecAsync; BuildTransactionalOverlaysDer Schlüssel ist nicht in ConfigurationCatalog enthalten.Plandiagnose; CLI-Exitcode 2Verwenden Sie einen Katalogschlüssel.

LaunchSpec#

CodeAusgelöst vonBedeutung / typische UrsacheOberflächeVorgehen
OL_E_SPEC_INVALIDLaunchSpecJson.ParseDie Wurzel ist kein JSON-Objekt, oder die Deserialisierung hat keinen Record erzeugt.Ausgelöst (InvalidDataException), CLI-Exitcode 2Korrigieren Sie die Datei (LaunchSpec).
OL_E_SPEC_NOT_FOUNDLaunchSpecJson.LoadAsyncDie /spec-Datei existiert nicht.Ausgelöst (FileNotFoundException), CLI-Exitcode 6Prüfen Sie den Pfad.
OL_E_SPEC_TOO_LARGELaunchSpecJson.LoadAsyncDie Datei ist größer als 1 MiB.Ausgelöst (InvalidDataException), CLI-Exitcode 2Verkleinern Sie die Datei.
OL_E_SPEC_UNKNOWN_PROPERTYLaunchSpecJson.ValidateEin Element, das an dieser Position keine öffentliche Eigenschaft des Records ist; Meldung OL_E_SPEC_UNKNOWN_PROPERTY: $.Path.Name.Ausgelöst (InvalidDataException), CLI-Exitcode 2Entfernen oder benennen Sie das Element um.

LocalControl#

CodeAusgelöst vonBedeutung / typische UrsacheOberflächeVorgehen
OL_E_CONTROL_COMMAND_UNKNOWNHandler des Eigentümers (OwnerSession)Der Befehl ist nicht session.status, session.events, session.stop oder runtime.execute mit einem operation-Argument.Steuerungsantwort; CLI-Exitcode 7Verwenden Sie einen unterstützten Befehl.
OL_E_CONTROL_FAILEDCLI-Client (ReportForwarded, CliEventWatch)Der Eigentümer hat Ok = false ohne Fehlercode geantwortet.CLI-Envelope, Exitcode 7Lesen Sie die Meldung; prüfen Sie Konsole/Diagnosedaten des Eigentümers.
OL_E_CONTROL_HANDLER_FAILEDLocalControlPlane.ServeAsyncDer Handler des Eigentümers hat eine Exception ausgelöst, deren Meldung keinen OL_E_-Code trägt (z. B. war die Sitzung bereits geschlossen), oder die Antwort des Handlers konnte nicht serialisiert werden.SteuerungsantwortLesen Sie session status; starten Sie den Eigentümer neu, falls er nicht mehr existiert.
OL_E_CONTROL_MESSAGE_INVALIDLocalControlPlane (beide Seiten)Längenpräfix negativ oder größer als 64 KiB (einschließlich eines übergroßen Anfrage-Frames), leerer Frame, JSON null, eine Anfrage ohne Command oder JSON, das nicht dekodiert werden konnte.Steuerungsantwort / CLI-EnvelopeVerwenden Sie das dokumentierte Protokoll (lokale Steuerungsebene).
OL_E_CONTROL_MESSAGE_TOO_LARGELocalControlPlane.TryRequestAsync (Client)Die eigene serialisierte Anfrage des Clients ist größer als 64 KiB. Wird dem Aufrufer gemeldet; es wird nichts gesendet.Steuerungsantwort / CLI-EnvelopeVerkleinern Sie die Anfrage.
OL_E_CONTROL_RESPONSE_TOO_LARGELocalControlPlane.ServeAsync (Eigentümer)Die Antwort des Eigentümers passt nicht in den Frame von 64 KiB. Der Eigentümer antwortet mit diesem typisierten Fehler, statt die Antwort zu verwerfen. session.status und session.events erreichen ihn nie: Ihr Ereignisverlauf wird, beginnend mit den ältesten Einträgen, passend gekürzt.Steuerungsantwort / CLI-EnvelopeWiederholen Sie den Vorgang; lesen Sie Ereignisse häufiger.
OL_E_CONTROL_PROTOCOLLocalControlPlane, TryRequestBoundAsyncDie ProtocolVersion der Anfrage ist nicht 0.1; die Antwort des Eigentümers konnte nicht dekodiert werden oder war leer; der Eigentümer hat die Verbindung ohne Antwort geschlossen oder die Verbindung ist nach ihrem Aufbau abgebrochen; der Eigentümer hat keine SessionId gemeldet.Steuerungsantwort / CLI-EnvelopeGleichen Sie die Versionen von Client und Eigentümer an; lesen Sie session status.
OL_E_CONTROL_SESSION_MISMATCHHandler des Eigentümerssession.stop oder runtime.execute ohne eine session_id, die der aktiven Sitzung entspricht.Steuerungsantwort; CLI-Exitcode 7Lesen Sie zuerst session.status und binden Sie die Anfrage (die CLI tut dies automatisch).

Sonstige#

CodeAusgelöst vonBedeutung / typische UrsacheOberflächeVorgehen
OL_E_PLAN_NOT_RUNNABLEOmsiLaunchService.StartSessionAsyncDer übergebene Plan hat IsRunnable = false, oder die erneute Planung beim Start ist nicht ausführbar (Omsi.exe geändert, Inhalte entfernt, Plugin-Closure fehlt); die Meldung listet die aktuellen OL_E_-Codes auf.Ausgelöst (InvalidOperationException); CLI-Exitcode 1Planen Sie erneut und beheben Sie die aufgeführten Diagnosen.

Darstellung#

Alle werden von SessionVisualAssets (src/OmsiLaunch.Core/SessionVisualAssets.cs) ausgelöst. Zur Planungszeit sind sie in OL_E_SESSION_PRESENTATION_INVALID eingeschlossen (die Meldung trägt den Code); beim Start werden sie über OL_E_START_SESSION gemeldet.

CodeBedeutung / typische UrsacheVorgehen
OL_E_ITX_PROFILE_INVALIDDie .itx-Datei ist leer, hat eine ungerade Anzahl nicht leerer Zeilen, oder eine URL-Zeile ist keine absolute http/https-URL.Verwenden Sie Paare aus URL- und Zielzeile.
OL_E_ITX_PROFILE_MISSINGOverrideProfilePath (aufgelöst relativ zum Arbeitsverzeichnis des Prozesses) existiert nicht. Ausgelöst als FileNotFoundException.Übergeben Sie einen existierenden .itx-Pfad.
OL_E_ITX_PROFILE_REQUIREDInternetTextures.Mode ist Override ohne OverrideProfilePath. CLI-Exitcode 2, wenn ausgelöst.Geben Sie /internet-textures-profile:<file.itx> an.
OL_E_ITX_TARGET_OUTSIDE_TEXTURE_PATHEine Zielzeile ist absolut, enthält .., beginnt mit \, wird außerhalb der Installation aufgelöst, enthält keine Texture\-Komponente oder durchläuft eine Junction/einen Symlink.Verwenden Sie relative Ziele der Form Texture\....
OL_E_SPLASH_ASSET_DIRECTORY_MISSINGCustomAssetDirectory existiert nicht.Korrigieren Sie das Verzeichnis.
OL_E_SPLASH_ASSET_MISSINGENG.bmp oder <LANG>.bmp fehlt im Asset-Verzeichnis, oder ein mitgeliefertes assets\splash\<LANG>.bmp fehlt beim Befüllen von .omsilaunch\assets\splash.Stellen Sie die BMP-Dateien bereit bzw. installieren Sie das Paket neu.
OL_E_SPLASH_FORMAT_UNSUPPORTEDEin Startbild-BMP ist keine 640×480-24-Bit-BM-Bitmap.Konvertieren Sie das Bild.

Prozess#

CodeAusgelöst vonBedeutung / typische UrsacheOberflächeVorgehen
OL_E_PROCESS_CLEANUP_FAILEDOmsiLaunchService (Pfade für Startfehler und Supervisor-Fehler)Das Beenden von OMSI oder das Warten darauf während der Fehlerbereinigung hat eine Exception ausgelöst; die innere Meldung folgt.Sitzungsdiagnose (einer Failed-Sitzung hinzugefügt)Stellen Sie sicher, dass keine Omsi.exe mehr läuft, und führen Sie dann /recover aus, falls ein Journal aussteht.
OL_E_PROCESS_CREATION_TIME_FAILEDCurrentWindowsX64Platform.StartAsyncGetProcessTimes ist direkt nach CreateProcessW fehlgeschlagen (Win32=<code>); der Prozess wird beendet.Sitzungsdiagnose über OL_E_START_SESSIONWiederholen Sie den Vorgang; prüfen Sie Virenschutz/Berechtigungen.
OL_E_PROCESS_EXITED_EARLYOmsiLaunchService.SuperviseAsyncOMSI wurde vor gameplay.entered beendet (Absturz, ein OMSI-Fehlerdialog wurde geschlossen, das Fenster wurde geschlossen).Sitzungsdiagnose (Failed); Wiederherstellung wird ausgeführtPrüfen Sie die eigenen Logs von OMSI und logfile.txt; suchen Sie in RuntimeEvents nach dem letzten Plugin-Ereignis.
OL_E_PROCESS_START_FAILEDCurrentWindowsX64Platform.StartAsyncCreateProcessW ist fehlgeschlagen (Win32=<code> in der Meldung).Sitzungsdiagnose über OL_E_START_SESSIONBeheben Sie den Win32-Fehler (fehlende Datei, Zugriff verweigert, Richtlinie).
OL_E_PROCESS_SUPERVISIONOmsiLaunchService.SuperviseAsyncDie Supervisor-Schleife hat eine Exception ausgelöst (Telemetrie lesen, auf Prozess warten/Prozess beenden, Journal schreiben); OMSI wird beendet und die Wiederherstellung versucht.Sitzungsdiagnose (Failed)Lesen Sie die innere Meldung und das Host-Log.
OL_E_PROCESS_TERMINATE_FAILEDCurrentWindowsX64Platform.TerminateTerminateProcess ist fehlgeschlagen (Win32=<code>).In Meldungen von OL_E_PROCESS_SUPERVISION / OL_E_PROCESS_CLEANUP_FAILEDBeenden Sie OMSI manuell und führen Sie dann /recover aus.
OL_E_PROCESS_WAIT_FAILEDCurrentWindowsX64Platform.WaitForExitAsyncWaitForSingleObject auf das Prozess-Handle ist fehlgeschlagen.In Meldungen von OL_E_PROCESS_SUPERVISION / OL_E_PROCESS_CLEANUP_FAILEDWie oben.

Runtime#

„Runtime-Detail“ bedeutet ErrorCode = OL_E_RUNTIME_OPERATION_FAILED mit dem Code am Anfang von Values["detail"].

CodeAusgelöst vonBedeutung / typische UrsacheOberflächeVorgehen
OL_E_CAMERA_PRESET_FAMILY_UNSUPPORTEDOmsiCameraLockWritercamera.lock mit preset, während family 2 (außen) oder 3 (Karte) ist; Voreinstellungen gibt es nur für Fahrer (0) und Fahrgast (1).Runtime-DetailLassen Sie preset weg oder verwenden Sie Family 0/1.
OL_E_DATE_TIME_APPLY_FAILEDLaunchValidationDate/Time-Modus Explicit ohne Wert oder mit Komponenten außerhalb des Bereichs. Der Name ist historisch bedingt; es handelt sich um einen Validierungsfehler zur Planungszeit.PlandiagnoseKorrigieren Sie den Wert (und beachten Sie, dass explizites Datum/explizite Uhrzeit auf diesem Build nicht ausführbar ist).
OL_E_MAKEVEHICLE_BUS_NOT_FOUNDCurrentRuntimeControl.MakeBasicRoadVehicleroad-vehicles.spawn: Der .bus-Pfad existiert nicht unter dem OMSI-Arbeitsverzeichnis (vor dem nativen Aufruf geprüft, damit OMSI keinen Ersatz verwenden kann).Runtime-DetailVerwenden Sie eine Identität aus vehicles list//list:vehicles.
OL_E_MAKEVEHICLE_DELTA_MULTIPLEwie obenNatives MakeVehicle hat die Straßenfahrzeug-Sammlung um mehr als ein Objekt verändert.Runtime-Detail (native_status, Anzahlen in der Meldung)Melden Sie den Fall; die erzeugten Objekte bleiben bis zum Ende der Sitzung bestehen.
OL_E_MAKEVEHICLE_DELTA_ZEROwie obenDie Sammlung hat sich nicht verändert; OMSI hat das Fahrzeug stillschweigend abgelehnt.Runtime-DetailPrüfen Sie die .bus-Datei; versuchen Sie ein anderes Modell.
OL_E_MAKEVEHICLE_NATIVE_FAILEDwie obenJeder andere native Status ungleich null.Runtime-DetailMelden Sie den Fall mit den Anzahlen aus der Meldung.
OL_E_PLACE_RANDOM_BUS_FAILEDCurrentRuntimeControl.PlaceRandomBusDer profilierte PlaceRandomBus-Aufruf hat einen Fehlerstatus zurückgegeben.Runtime-DetailWiederholen Sie den Vorgang, sobald das Spielgeschehen stabil ist; melden Sie den Fall.
OL_E_RUNTIME_ARGUMENT_REQUIREDPublicCapabilityRegistry.ValidateRuntimeArguments; Plugin-seitige Prüfungen (time.set ohne hour/minute/second; camera.set ohne family/field_of_view; camera.lock ohne auswertbares family; Fahrzeug-/Kurvenoperationen)Ein erforderliches Argument fehlt oder ist leer.Runtime-Ergebnis (Registry; CLI-Exitcode 2) oder Runtime-Detail (Plugin)Geben Sie das Argument an (Runtime-Steuerung).
OL_E_RUNTIME_ARTIFACT_MISSINGOmsiLaunchService.PlanSessionAsyncDas Referenzverzeichnis/die Referenzdatei der Plugin-Closure oder die in OmsiLaunchRuntimePaths angegebene native Bridge kann nicht geladen werden (kann OL_E_RELEASE_MANIFEST_INVALID umschließen).PlandiagnoseFühren Sie OmsiLaunch aus einem intakten Paket aus.
OL_E_RUNTIME_BASELINE_UNAVAILABLERuntimeBatch (/runtime-write-batch, INTERNAL-Harness)Das Baseline-time.read/camera.read ist fehlgeschlagen, daher wurde der Schreibtest übersprungen.Nur Batch-ArtefaktNicht für Benutzer bestimmt.
OL_E_RUNTIME_BUS_IDENTITY_INVALIDCurrentRuntimeControl.ValidateBasicBusIdentitymodel ist leer, länger als 240 Zeichen, enthält NUL oder .., beginnt nicht mit Vehicles\ oder endet nicht auf .bus.Runtime-DetailÜbergeben Sie Vehicles\<dir>\<file>.bus.
OL_E_RUNTIME_CHANNEL_BUSYkeine (aus Kompatibilitätsgründen beibehalten)Wird nicht mehr ausgegeben. Frühere Builds lösten ihn aus, wenn eine abgebrochene Anfrage im Slot verblieb; jeder abschließende Pfad einer Anfrage setzt den Slot jetzt zurück, und eine zu Beginn einer neuen Anfrage vorgefundene verbliebene Anfrage oder Antwort wird gelöscht.——
OL_E_RUNTIME_CHANNEL_CLOSEDOmsiLaunchService.LiveSession.RequestRuntimeAsyncDie Mailbox wurde verworfen, weil die Sitzung endet.Ausgelöst (InvalidOperationException)Keines; die Sitzung ist vorbei.
OL_E_RUNTIME_CHANNEL_STATE_INVALIDCurrentRuntimeCommandStore.RequestAsyncDer Mailbox-Slot enthielt einen Zustandswert, der weder idle noch requested noch responded ist (Beschädigung). Der Slot wird zurückgesetzt und der Fehler ausgelöst; die nächste Anfrage funktioniert normal.Ausgelöst (InvalidDataException)Wiederholen Sie den Vorgang; melden Sie den Fall, wenn er fortbesteht.
OL_E_RUNTIME_CONSTANTS_UNAVAILABLEOmsiRuntimeReadersDer Zeiger auf den Konstantenblock des Fahrzeugs ist null.Runtime-DetailDas Fahrzeug hat keine Konstanten; nichts zu tun.
OL_E_RUNTIME_CONSTANT_NOT_FOUNDOmsiRuntimeReadersname ist nicht in der Konstantentabelle des Fahrzeugs enthalten.Runtime-DetailListen Sie zuerst die Konstanten auf.
OL_E_RUNTIME_CREATED_OBJECT_INVALIDOmsiRuntimeReaders.RegisterRoadVehicleHandleAsyncDas durch den Spawn erzeugte Objekt hat eine VMT außerhalb des Adressbereichs des OMSI-Images.Runtime-DetailMelden Sie den Fall.
OL_E_RUNTIME_CREATED_OBJECT_NOT_IN_COLLECTIONwie obenDas erzeugte Objekt ist nicht in der Straßenfahrzeug-Sammlung enthalten.Runtime-DetailMelden Sie den Fall.
OL_E_RUNTIME_CURVE_DEGENERATEOmsiRuntimeReaders.EvaluateRoadVehicleCurveAsyncZwei aufeinanderfolgende Kurvenpunkte haben denselben X-Wert.Runtime-DetailInhaltsproblem in der Kurve des Fahrzeugs.
OL_E_RUNTIME_CURVE_EMPTYwie obenDie Kurve hat keine Punkte.Runtime-DetailWie oben.
OL_E_RUNTIME_CURVE_INVALIDwie obenKein Segment der Kurve enthält x.Runtime-DetailWerten Sie innerhalb des Definitionsbereichs der Kurve aus.
OL_E_RUNTIME_CURVE_NOT_FOUNDwie obenname ist unbekannt oder sein Funktionszeiger ist null.Runtime-DetailListen Sie zuerst die Kurven auf.
OL_E_RUNTIME_HOF_UNAVAILABLEOmsiRuntimeReaders.ReadRoadVehicleHofsAsyncDer Zeiger auf die Fahrzeugdefinition ist null.Runtime-DetailDas Handle verweist auf ein Fahrzeug ohne Definitionsdaten.
OL_E_RUNTIME_INSTALLATION_INCOMPLETECliProgram.RunAsync (Eigentümermodus)plugins\OmsiLaunch.Plugin.opl oder plugins\OmsiLaunch.Native.x86.dll fehlt neben der ausführbaren Datei.CLI-Envelope, Exitcode 7Installieren Sie das Paket neu.
OL_E_RUNTIME_OBJECT_HANDLE_REQUIREDCurrentRuntimeControlhandle fehlt oder ist leer bei road-vehicle.read, human.read, vehicle.variables.list, vehicle.string-variables.list, vehicle.constants.list, vehicle.curves.list (die Registry weist diese normalerweise schon vorher mit OL_E_RUNTIME_ARGUMENT_REQUIRED ab).Runtime-DetailGeben Sie das Handle an.
OL_E_RUNTIME_OBJECT_HANDLE_STALEOmsiRuntimeReadersDas Handle ist unbekannt, das Objekt hat die Sammlung verlassen, die Adressgeneration wurde weitergezählt, oder der Objekt-Fingerprint (VMT + Identität von Definition/Modell) hat sich geändert, weil die Adresse wiederverwendet wurde. Verbleibender blinder Fleck: Dieselbe Klasse und dasselbe Modell werden zwischen zwei Listenabfragen an derselben Adresse neu erzeugt.Runtime-DetailFühren Sie road-vehicles.list/humans.list erneut aus und verwenden Sie das neue Handle.
OL_E_RUNTIME_OPERATION_FAILEDCurrentRuntimeControl.Execute; CurrentRuntimeCommandMailbox.TryDispatch; D3DRuntimeApi-FallbackAllgemeiner Wrapper für Plugin-seitige Fehler; Values["detail"] enthält die Meldung (oft einen spezifischeren Code) und Values["exception"] den Exception-Typ. Eine Exception, die einer Operation innerhalb des Mailbox-Dispatchers entkommt, wird ebenfalls mit diesem Code beantwortet (ohne Werte), statt die Anfrage unbeantwortet zu lassen.Runtime-ErgebnisLesen Sie detail.
OL_E_RUNTIME_OPERATION_UNAVAILABLECurrentRuntimeControl.ExecuteDas Plugin hat keine Implementierung für eine Operation, die die Registry zugelassen hat (Versionsabweichung zwischen Registry und Plugin).Runtime-DetailInstallieren Sie ein konsistentes Paket neu.
OL_E_RUNTIME_OPERATION_UNKNOWNPublicCapabilityRegistry.ValidateRuntimeArgumentsDie Operation ist nicht in PublicRuntimeOperationIds enthalten, einschließlich jeder internal.*-Operation. Wird vor der Sitzungssuche geprüft.Runtime-Ergebnis; Steuerungsantwort; CLI-Exitcode 2Verwenden Sie eine öffentliche Operations-ID.
OL_E_RUNTIME_PLAYER_VEHICLE_UNAVAILABLEOmsiCameraLockWritercamera.lock mit preset, während kein Spielerfahrzeug existiert (Headless-Sitzungen haben keines). Wird außerdem als code des Ereignisses camera.lock.degraded gemeldet, wenn das erneute Anwenden fehlschlägt.Runtime-Detail / Runtime-EreignisSperren Sie ohne Voreinstellung, oder verwenden Sie eine Sitzung mit Spielerfahrzeug.
OL_E_RUNTIME_PROTOCOL_MISMATCHD3DRuntimeApiEin erfolgreiches D3D-Ergebnis hatte keine Werte oder eine unbekannte Gerätestatus-Zeichenfolge.Ausgelöst (OmsiRuntimeException)Gleichen Sie die Versionen von Host und Plugin an.
OL_E_RUNTIME_REQUEST_ID_REUSEDCurrentRuntimeCommandStore.RequestAsyncDer Slot enthält eine veraltete Antwort mit derselben Anfrage-ID wie die neue Anfrage. Die veraltete Antwort wird gelöscht, bevor der Fehler ausgelöst wird.Ausgelöst (InvalidOperationException)Verwenden Sie streng aufsteigende Anfrage-IDs.
OL_E_RUNTIME_REQUEST_TIMEOUTCurrentRuntimeCommandStore.RequestAsyncKeine Antwort innerhalb von timeout; der Slot wird zurückgesetzt und eine verspätete Antwort verworfen.Ausgelöst (TimeoutException); CLI-Exitcode 5Wiederholen Sie den Vorgang mit einem längeren Timeout; prüfen Sie, ob OMSI blockiert ist (modaler Dialog, Ladevorgang).
OL_E_RUNTIME_RESPONSE_INVALIDCurrentRuntimeCommandStoreDas Antwort-Envelope ist beschädigt, hat eine ungültige Länge (negativ, null oder größer als der Slot), eine fremde Sitzungs-ID oder eine andere Anfrage-ID. Der Slot wird zurückgesetzt, bevor der Fehler ausgelöst wird, sodass die nächste Anfrage normal funktioniert.Ausgelöst (InvalidDataException)Wiederholen Sie den Vorgang; melden Sie den Fall, wenn er fortbesteht.
OL_E_RUNTIME_RESPONSE_TOO_LARGECurrentRuntimeCommandMailbox.TryDispatchDas serialisierte Ergebnis ist größer als die Mailbox von 64 KiB. Ergebnisse begrenzter Listen (solche mit returned_count und truncated) werden stattdessen passend gekürzt (Dokumentationsaudit BUG-05); in der Praxis bleibt der Code für timetable.logs.read erreichbar, das nicht begrenzt ist.Runtime-ErgebnisVerwenden Sie eine engere Operation (z. B. road-vehicles.read statt road-vehicles.list bei sehr großen Sammlungen).
OL_E_RUNTIME_SCRIPT_OBJECT_UNAVAILABLEOmsiRuntimeReadersDer Zeiger auf die Skriptdefinition oder den Skriptzustand des Fahrzeugs ist null.Runtime-DetailDas Fahrzeug hat keine Skriptobjekte.
OL_E_RUNTIME_SESSION_MISMATCHOmsiLaunchService.ExecuteRuntimeAsync; CurrentRuntimeCommandStore; Plugin-MailboxRuntimeCommand.SessionId weicht von der Sitzungs-ID des Handles ab (vom Host ausgelöst), oder eine Anfrage hat ein Plugin erreicht, das an eine andere Sitzung gebunden ist (vom Plugin als typisiertes Ergebnis zurückgegeben).Ausgelöst (InvalidOperationException) / Runtime-ErgebnisErstellen Sie den Befehl mit session.SessionId.
OL_E_RUNTIME_SETTING_NOT_PERSISTENTCurrentRuntimeControl.SetWeatherweather.set wird immer abgelehnt: OMSI überschreibt die profilierten Wetterfelder bei seinem nächsten Wetter-Tick, daher kann ein Schreibvorgang nicht als semantische Änderung gemeldet werden.Runtime-ErgebnisKeines; weather.set ist UNAVAILABLE.
OL_E_RUNTIME_SETTING_UNAVAILABLEOmsiWeatherWriterUnbekannter Name eines Wetterfelds. Derzeit nicht erreichbar, da weather.set schon vorher abgelehnt wird.Runtime-Detail (definiert)Siehe Quelltext src/OmsiLaunch.Interop/OmsiWeatherWriter.cs.
OL_E_RUNTIME_STRING_VARIABLE_NOT_FOUNDOmsiRuntimeReadersname ist nicht in der Tabelle der String-Variablen enthalten.Runtime-DetailListen Sie zuerst die String-Variablen auf.
OL_E_RUNTIME_VALUE_INVALIDOmsiWeatherWriter.ParseBooleanEin boolescher Wetterwert ist nicht true/false/1/0. Derzeit nicht erreichbar (siehe oben).Runtime-Detail (definiert)Siehe Quelltext.
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 keine Ganzzahl, family 0..3, preset 0..255; road-vehicles.place-random: ai_type 0..255, group/type/tour/line 0..65535 (type darf -1 sein), scheduled 0..1; vehicle.variable.set: value nicht endlich; vehicle.curve.evaluate: x nicht endlich.Runtime-DetailVerwenden Sie einen Wert im zulässigen Bereich.
OL_E_RUNTIME_VARIABLE_NOT_FOUNDOmsiRuntimeReadersname ist nicht in der Tabelle der numerischen Variablen enthalten.Runtime-DetailListen Sie zuerst die Variablen auf.
OL_E_RUNTIME_VARIABLE_UNAVAILABLEOmsiRuntimeReadersDer Variablen-Slot oder die Wertadresse ist null.Runtime-DetailDie Variable ist für dieses Fahrzeug nicht materialisiert.
OL_E_TIME_APPLY_FAILEDCurrentRuntimeControl.SetTimeDie Uhrzeitwerte wurden geschrieben, aber der profilierte native SetTime-Aufruf hat einen Fehler zurückgegeben.Runtime-DetailWiederholen Sie den Vorgang; lesen Sie mit time.read zurück.

RuntimeD3D#

Alle werden von CurrentRuntimeControl ausgelöst (ThrowD3D-Zuordnung des nativen Status; detail enthält die Operation und das HRESULT, native_status den numerischen Status). Oberfläche: Runtime-Ergebnis mit dem Code in ErrorCode; D3DRuntimeApi löst ihn erneut als OmsiRuntimeException aus.

CodeNativer Status / UrsacheVorgehen
OL_E_D3D_DEVICE_LOST8: Das Direct3D-Device ist verloren.Warten Sie auf d3d.restored; erstellen Sie Texturen neu (die Generation hat sich geändert).
OL_E_D3D_INVALID_ARGUMENT14: fehlendes oder ungültiges width, height, level, x, y, format oder handle (Bereiche: width/height 1..4096, levels 0..16, level 0..15, x/y 0..4095).Korrigieren Sie die Argumente.
OL_E_D3D_INVALID_PIXEL_BUFFERpixels_base64 ist kein gültiges Base64 oder größer als 48 KiB.Senden Sie kleinere Rechtecke.
OL_E_D3D_INVALID_TEXTURE_FORMAT6, oder ein unbekannter format-Name (gültig: A8R8G8B8, X8R8G8B8, R5G6B5, X1R5G5B5, A1R5G5B5, A4R4G4B4, A8, L8, A8L8).Verwenden Sie ein aufgeführtes Format.
OL_E_D3D_NATIVE_CALL_FAILEDJeder andere Status; das HRESULT steht in detail.Melden Sie den Fall mit dem HRESULT.
OL_E_D3D_NOT_READY7: Das Device ist nicht bereit (vor dem ersten Frame oder während des Beendens).Wiederholen Sie den Vorgang nach d3d.ready.
OL_E_D3D_RESET_IN_PROGRESS9: Ein Geräte-Reset läuft.Wiederholen Sie den Vorgang nach d3d.restored.
OL_E_D3D_RESOURCE_RELEASED13: Das Textur-Handle wurde bereits freigegeben.Verwenden Sie freigegebene Handles nicht erneut.
OL_E_D3D_STALE_RESOURCE_HANDLE12: Das Handle gehört zu einer früheren Device-Generation; oder die Handle-Zeichenfolge ist nicht d3dtex-<session>-<hex> bzw. ist null.Erstellen Sie die Textur neu.

Sitzung#

CodeAusgelöst vonBedeutung / typische UrsacheOberflächeVorgehen
OL_E_CAPABILITY_UNAVAILABLESessionPlanner; ApplyTelemetry bei plugin.request.unsupportedPlan: LastMapState, EntrypointIdentity, Datums-/Uhrzeit-/Jahresmodus, Wettermodus, Felder des Spielerfahrzeugs oder Eingabedokumente angefordert (Requested capability unavailable: <name>). Telemetrie: Das Plugin hat die Übergabe (Handoff) abgelehnt (kann bei einem ausführbaren Plan nicht auftreten).Plandiagnose; SitzungsdiagnoseEntfernen Sie die nicht unterstützte Anforderung (bekannte Einschränkungen).
OL_E_HEADLESS_ARM_FAILEDApplyTelemetry bei headless.arm.failedDas Plugin konnte den einmaligen Headless-Start-Hook in OMSI nicht scharf schalten.Sitzungsdiagnose (Failed)Überprüfen Sie den Build; melden Sie den Fall.
OL_E_NO_ACTIVE_SESSIONCLI-Client (ReportForwarded, CliEventWatch)Kein Eigentümer antwortet auf der Steuerungs-Pipe der Installation (keine Sitzung, oder der Eigentümer startet bzw. validiert noch).CLI-Envelope, Exitcode 4Starten Sie eine Sitzung, oder warten Sie, bis sie Running ist.
OL_E_PLUGIN_NOT_LOADEDSuperviseAsyncStartupTimeoutSeconds ist vor plugin.started abgelaufen (OMSI hat plugins\OmsiLaunch.Plugin.opl nicht geladen oder hängt vor der Plugin-Initialisierung).Sitzungsdiagnose (Failed)Prüfen Sie die Plugin-Closure, plugins\OmsiLaunch.Plugin.opl und die logfile.txt von OMSI.
OL_E_PLUGIN_PROTOCOL_MISMATCHApplyTelemetry bei plugin.handoff.invalid oder nicht auswertbarem Telemetrie-JSONDas Plugin konnte die Start-Übergabe nicht lesen/verifizieren (Version 3/4, SHA-256) oder hat ungültige Telemetrie gesendet.Sitzungsdiagnose (Failed)Gleichen Sie die Versionen von Host und Plugin an (installieren Sie das Paket neu).
OL_E_SESSION_ALREADY_ACTIVECliProgram.RunAsyncFür diese Installation antwortet bereits ein Eigentümer auf session.status.CLI-Envelope, Exitcode 7Verwenden Sie Client-Befehle (session status, session stop, Runtime-Befehle).
OL_E_SESSION_NOT_RUNNINGOmsiLaunchService.ExecuteRuntimeAsyncDer Sitzungszustand ist nicht Running.Ausgelöst (InvalidOperationException)Rufen Sie zuerst WaitForAsync(session, SessionState.Running, ...) auf.
OL_E_SESSION_PRESENTATION_INVALIDSessionPlannerDer Startbild-/ITX-Plan konnte nicht erstellt werden; die Meldung trägt den Darstellungscode.PlandiagnoseSiehe Darstellung.
OL_E_SESSION_START_FAILEDWindowsHost.ShowFailure (OmsiLaunchW-Dialog)Ersatzcode, der angezeigt wird, wenn ein Startplan nicht ausführbar ist oder die Sitzung das Spielgeschehen nicht erreicht hat und keine OL_E_-Diagnose vorliegt.Nur MeldungsfensterLesen Sie .omsilaunch\diagnostics.
OL_E_SITUATION_LOAD_FAILEDApplyTelemetry bei world.situation.failedDer native Start der gespeicherten Situation hat einen Fehler zurückgegeben (native_status im Ereignis).Sitzungsdiagnose (Failed)Prüfen Sie die .osn und ihre Karte.
OL_E_STARTUP_TIMEOUTSuperviseAsyncDas Plugin wurde gestartet, aber Running wurde nicht innerhalb von StartupTimeoutSeconds erreicht.Sitzungsdiagnose (Failed)Erhöhen Sie /startup-timeout für große Karten; suchen Sie in RuntimeEvents nach dem letzten Weltereignis.
OL_E_START_SESSIONOmsiLaunchService.StartAsyncJede Exception im Startpfad; die Meldung ist die innere Meldung (beginnt meist mit dem inneren Code).Sitzungsdiagnose (Failed)Handeln Sie entsprechend dem inneren Code.
OL_E_WORLD_START_FAILEDApplyTelemetry bei world.failedDer native NEW_MAP-Start hat einen Fehler zurückgegeben (native_status im Ereignis).Sitzungsdiagnose (Failed)Prüfen Sie die Karte, den Einstiegspunkt-Index und die Logs von OMSI.

SessionProfile#

Alle werden von SessionProfileCompiler (src/OmsiLaunch.Core/SessionProfiles.cs) oder CliInput ausgelöst, als SessionProfileException (eine IOException mit Code), CLI-Exitcode 2. Siehe Sitzungsprofile.

CodeBedeutung / typische UrsacheVorgehen
OL_E_SESSION_PROFILE_ASSET_MISSINGDas Startbild-assets-Verzeichnis der Voreinstellung oder die Internettexturen-profile-Datei existiert nicht innerhalb des Pakets.Fügen Sie das Asset hinzu.
OL_E_SESSION_PROFILE_INVALIDStruktur- oder Grenzverletzung: mehr als 256 KiB, nicht genau ein Wurzel-Mapping, YAML-Anker, unbekannter Schlüssel, fehlender erforderlicher Schlüssel, kein Skalar, wo ein Skalar erforderlich ist, id weicht vom Verzeichnisnamen ab, Voreinstellungen nicht 1..5 oder doppelter index, nicht positive Timeouts, nicht unterstützter Wetter-/Startbild-/Internettexturen-Modus, Datum/Uhrzeit nicht explicit, ungültiges YAML, Fehler beim Parsen von Zahlen/Datumswerten.Korrigieren Sie das YAML gemäß der Meldung.
OL_E_SESSION_PROFILE_MAP_MISMATCHcompatibility.maps ist nicht leer und enthält weder die ausgewählte Karte (NEW_MAP) noch die Karte der ausgewählten Situation (SAVED_SITUATION).Wählen Sie eine kompatible Welt.
OL_E_SESSION_PROFILE_NOT_FOUND<root>\.omsilaunch\session-profiles\<id>\profile.yaml existiert nicht.Prüfen Sie die ID.
OL_E_SESSION_PROFILE_OVERRIDE_CONFLICTEin explizites CLI-Argument zielt auf ein Feld, das dem ausgewählten Profil bzw. der ausgewählten Voreinstellung gehört.Lassen Sie das Flag weg oder wählen Sie eine andere Voreinstellung.
OL_E_SESSION_PROFILE_PATH_ESCAPEDie ID enthält \, /, : oder ..; oder ein Asset-Pfad ist absolut, verlässt das Paket oder durchläuft eine Junction/einen Symlink.Halten Sie Pfade innerhalb des Pakets.
OL_E_SESSION_PROFILE_PRESET_NOT_FOUND/predefined-profile-index fehlt, liegt außerhalb von 1..5 oder ist im Profil nicht deklariert.Verwenden Sie einen deklarierten Voreinstellungsindex.
OL_E_SESSION_PROFILE_SCHEMA_UNSUPPORTEDschema ist nicht omsilaunch.session-profile/v1.Verwenden Sie das unterstützte Schema.
OL_E_SESSION_PROFILE_SETTING_NOT_WRITABLEEin Einstellungsschlüssel einer Voreinstellung ist bekannt, aber nicht beschreibbar.Entfernen Sie den Schlüssel.
OL_E_SESSION_PROFILE_SETTING_UNKNOWNEin Einstellungsschlüssel einer Voreinstellung ist nicht im Katalog enthalten.Verwenden Sie einen Katalogschlüssel.

Transaktion#

Siehe Transaktionen und Recovery.

CodeAusgelöst vonBedeutung / typische UrsacheOberflächeVorgehen
OL_E_CLOSECHECK_REMOVE_FAILEDOmsiLaunchService.RemoveStaleClosecheckEine veraltete closecheck existiert nach File.Delete noch.Sitzungsdiagnose über OL_E_START_SESSIONEntfernen Sie <root>\closecheck manuell (Berechtigungen).
OL_E_RECOVERY_ABSENT_OWNERSHIP_MISMATCHFileConfigurationTransaction.RestoreAsyncEin Pfad, der vor der Sitzung nicht existierte, enthält jetzt Inhalt, der von dem abweicht, was die Sitzung angewendet hat; er wird nicht entfernt und das Journal wird beibehalten.Ausgelöst (IOException); innerhalb von OL_E_RESTORE_FAILED / OL_E_START_SESSION; CLI-Exitcode 8Prüfen Sie die Datei; entfernen oder verschieben Sie sie und führen Sie dann /recover aus.
OL_E_RECOVERY_ABSENT_OWNERSHIP_UNVERIFIEDRestoreAsync (Journal ohne Fingerprint)Das Journal hat keinen Fingerprint des angewendeten Inhalts für einen ursprünglich nicht vorhandenen Pfad, der keine Löschung ist, sodass die Eigentümerschaft nicht nachgewiesen werden kann. Beim Sitzungsstart wird die Recovery (Absturzwiederherstellung) zurückgestellt und mit den geplanten Bytes dieser Sitzung erneut versucht; über RecoverPendingAsync wird der Fehler ausgelöst.Ausgelöst (IOException); CLI-Exitcode 8Starten Sie eine Sitzung mit derselben Spec (liefert die Bytes), oder prüfen und entfernen Sie die Datei und führen Sie dann /recover aus.
OL_E_RECOVERY_BACKUP_CORRUPTRestoreAsyncDer SHA-256 eines Backups stimmt nicht mit dem im Journal aufgezeichneten Snapshot überein; es wird nichts geschrieben.Ausgelöst; innerhalb von OL_E_RESTORE_FAILED; CLI-Exitcode 8Stellen Sie die Datei aus Ihrem eigenen Backup wieder her; löschen Sie das Journal erst dann, wenn Sie sicher sind.
OL_E_RECOVERY_JOURNAL_MISSINGRestoreAsyncSnapshots existieren im Speicher, aber journal.json ist verschwunden (während der Sitzung gelöscht).Ausgelöst; innerhalb von OL_E_RESTORE_FAILEDÜberprüfen Sie die Sitzungsdateien manuell.
OL_E_RECOVERY_JOURNAL_REMOVE_FAILEDFileConfigurationTransaction.RemoveJournaljournal.json existiert nach dem Löschen noch (die Wiederherstellung selbst war erfolgreich und wurde verifiziert).Ausgelöst; innerhalb von OL_E_RESTORE_FAILED; CLI-Exitcode 8Löschen Sie <root>\.omsilaunch\journal.json (Berechtigungen) oder führen Sie /recover erneut aus (idempotent).
OL_E_RESTORE_DEFERREDOmsiLaunchService (Startfehler / Supervisor)Das Beenden von OMSI konnte nicht bestätigt werden, daher wurden Dateien nicht ersetzt, solange OMSI sie möglicherweise noch verwendet; das Journal wird beibehalten.Sitzungsdiagnose (Failed)Führen Sie /recover aus, nachdem Omsi.exe beendet wurde (oder der nächste Start führt die Recovery automatisch durch).
OL_E_RESTORE_FAILEDOmsiLaunchService (Startfehler / Supervisor)RestoreAsync hat eine Exception ausgelöst; die Meldung trägt den inneren Code; das Journal wird beibehalten.Sitzungsdiagnose (Failed); CLI-Exitcode 8, wenn von /recover ausgelöstHandeln Sie entsprechend dem inneren Code und führen Sie dann /recover aus.

Warnung#

CodeAusgelöst vonBedeutungOberflächeVorgehen
OL_W_RESTORE_FOREIGN_FILE_RETAINEDFileConfigurationTransaction.RestoreAsyncEin Sitzungs-Löschpfad (ITX-Ziel, Texture\standard.ipr, closecheck) existierte vor der Sitzung nicht und existiert jetzt, aber unter diesem Journal wurde nie ein OMSI-Prozess gestartet, sodass die Datei kein Nebenprodukt der Sitzung sein kann. Sie wird beibehalten und gemeldet (Meldung = relativer Pfad, Data["sha256"]); die Transaktion wird dennoch abgeschlossen.Sitzungsdiagnose / RecoveryStatus.Diagnostics (Zustand nicht betroffen)Prüfen Sie die Datei; entfernen Sie sie selbst, falls sie unerwünscht ist.

Diagnosecodes, die keine Fehler sind#

CodeAusgegeben vonMeldung / DatenBedeutung
process.startedOmsiLaunchService.LiveSession.AttachMeldung = PID; Data["thread_id"], Data["creation_utc"] (ISO 8601)Omsi.exe wurde erstellt und ihre Identität aufgezeichnet. Sitzungsdiagnose.
closecheck.stale-removedOmsiLaunchService.RemoveStaleClosecheckMeldung = SHA-256 der entfernten DateiEine closecheck, die vor der Sitzung existierte, wurde dauerhaft entfernt (SuppressStaleClosecheckWarning = true). Sitzungsdiagnose.
restore.session-artifact-removedFileConfigurationTransaction.RestoreAsyncMeldung = relativer Pfad; Data["sha256"]Ein Sitzungs-Löschpfad wurde während einer Sitzung, deren Prozess gestartet worden war, von OMSI neu erstellt; er wurde entfernt, um die ursprüngliche Abwesenheit wiederherzustellen. Sitzungsdiagnose / RecoveryStatus.Diagnostics.
plugin.integrity.referenceOmsiLaunchService.PlanSessionAsyncMeldung = manifest oder selfWelche Referenz die Validierung des permanenten Plugins verwendet. Plandiagnose.
session_profile.selectedSessionPlannerMeldung = Profil-ID; Data["session_profile.id|name|version|author|preset_id|preset_index|preset_name|path"]Herkunft einer aus einem Sitzungsprofil kompilierten Sitzung. Plandiagnose.

Runtime-Ereignisnamen (RuntimeEvent.Type, keine Diagnosen) sind im Sitzungslebenszyklus aufgeführt.