Códigos de error y de diagnóstico

Documentación de la versión v0.1.0-beta.3Ver fuente en GitHub

Traducción de la página original en inglés de OmsiLaunch 0.1.0-beta3. La página en inglés es la referencia normativa: si difieren, prevalecen la página en inglés y el código.

Esta página es la referencia normativa de todos los códigos de PublicErrorCodes (src/OmsiLaunch.Api/PublicErrorCodes.cs): 142 códigos de error OL_E_ y una advertencia OL_W_, agrupados por categoría del catálogo, más los códigos de diagnóstico informativos que no son errores. Para cada código indica dónde lo genera el código actual, qué significa, cómo te llega (excepción lanzada, campo de resultado, diagnóstico, respuesta del plano de control o envelope de la CLI) y qué hacer. Los significados se han tomado de los puntos donde se generan; cuando un código está definido pero no tiene ninguna ruta actual que lo genere, la página lo indica.

Páginas relacionadas: API pública, códigos de salida, LaunchSpec, ciclo de vida de la sesión, transacciones y recuperación, plano de control local, control de runtime, perfiles de sesión, plugin permanente.

Cómo te llegan los códigos#

SuperficieSignificado
LanzadoUna excepción cuyo Message empieza por el código (InvalidOperationException, IOException, TimeoutException, InvalidDataException, FileNotFoundException, ArgumentException, SessionProfileException). La CLI extrae el código del mensaje y lo asigna a un código de salida (CliProgram.Classify).
Diagnóstico del planUn LaunchDiagnostic en SessionPlan.Diagnostics; cualquier código OL_E_ hace que IsRunnable sea false (CLI: plan NOT RUNNABLE, salida 1).
Diagnóstico de la sesiónUn LaunchDiagnostic en SessionStatus.Diagnostics; el estado de la sesión es Failed (salida 1 de la CLI). OL_E_START_SESSION, OL_E_PROCESS_SUPERVISION y OL_E_RESTORE_FAILED envuelven un código interno en su mensaje.
Resultado de runtimeRuntimeCommandResult.ErrorCode con Succeeded = false.
Detalle de runtimeRuntimeCommandResult.ErrorCode = OL_E_RUNTIME_OPERATION_FAILED y el código específico como primer token de Values["detail"] (con Values["exception"]). Así es como se expone cada código de InvalidOperationException/ArgumentException del lado del plugin.
Respuesta de controlErrorCode de una respuesta del plano de control local (LocalControlResponse).
Envelope de la CLIerror.code en el envelope --json, o <code>: <message> en la consola; se indica el código de salida.
TelemetríaUn nombre de evento de runtime que el host asigna a un diagnóstico de la sesión.

Cli#

CódigoGenerado porSignificado / causa típicaSuperficieQué hacer
OL_E_CANCELLEDCliProgram.ClassifySe escapó una OperationCanceledException (Ctrl+C o una espera del cliente cancelada).Envelope de la CLI, salida 7Vuelve a ejecutar el comando.
OL_E_INTERNALCliProgram.ClassifySe escapó una excepción sin código OL_E_: JSON de /spec mal formado, un miembro obligatorio de la spec nulo, un fallo inesperado.Envelope de la CLI, salida 10Lee el mensaje y <root>\.omsilaunch\diagnostics\<sessionId>-host.log; corrige la entrada; notifícalo si no tiene explicación.
OL_E_TIMEOUTCliProgram.Classify; LocalControlPlane.TryRequestAsyncSe escapó una TimeoutException sin código; o el cliente de control local estaba conectado a un propietario que no respondió dentro del timeout (el propietario existe, por lo que no se notifica como OL_E_NO_ACTIVE_SESSION). (Los timeouts del buzón llevan OL_E_RUNTIME_REQUEST_TIMEOUT en su lugar).Envelope de la CLI, respuesta de control; salida 5 desde Classify, salida 7 para una respuesta de controlVuelve a intentarlo; comprueba que OMSI y el propietario responden.
OL_E_WINDOWS_HOST_MISSINGCliProgram.RunAsync (/silent)OmsiLaunchW.exe no está junto a OmsiLaunch.exe.Envelope de la CLI, salida 7Vuelve a instalar el paquete.
OL_E_WINDOWS_HOST_START_FAILEDCliProgram.RunAsync (/silent)Process.Start de OmsiLaunchW.exe no devolvió ningún proceso.Envelope de la CLI, salida 7Comprueba los archivos del paquete y los permisos; ejecuta sin /silent para ver el fallo.

Compatibilidad#

CódigoGenerado porSignificado / causa típicaSuperficieQué hacer
OL_E_BUILD_VALIDATION_FAILEDOmsiLaunchService.ApplyTelemetry en plugin.build.invalidLa comprobación de build dentro del proceso del plugin (perfil Omsi23004_692EBFBF más la sonda VMT nativa) falló aunque el host aceptó el ejecutable, por ejemplo un build Steam LAA de la lista de permitidos cuya disposición en memoria difiere, o un OMSI parcheado.Diagnóstico de la sesión (Failed)Usa el build validado en runtime; consulta compatibilidad.
OL_E_UNSUPPORTED_BUILDSessionPlanner (omsi.profile.OMSI23004 no disponible)Falta Omsi.exe, o su tamaño/SHA-256 no coincide ni con la huella del perfil ni con la lista de permitidos.Diagnóstico del planInstala el build compatible OMSI 2.3.004.
OL_E_UNSUPPORTED_OPERATING_SYSTEMSessionPlanner (runtime.current-windows-x64 no disponible); también lo lanza CurrentWindowsX64Platform.ValidateCurrent, al que el servicio no llamaNo es Windows 10 o posterior, o el sistema operativo o el proceso host no es x64.Diagnóstico del plan (salida 3 de la CLI cuando se lanza)Ejecuta en Windows 10 o posterior de 64 bits.
OL_E_UNSUPPORTED_OS_ARCHITECTURESolo CurrentWindowsX64Platform.ValidateCurrentLa arquitectura del sistema operativo o del host no es x64. El servicio no llama a ValidateCurrent; no hay ninguna ruta actual que lo genere.Lanzado (PlatformNotSupportedException) solo por ese métodoConsulta el código fuente src/OmsiLaunch.Process/RuntimePlatform.cs.

Contenido#

CódigoGenerado porSignificado / causa típicaSuperficieQué hacer
OL_E_ENTRYPOINT_NOT_FOUNDLaunchValidationNEW_MAP sin EntrypointIdentity y con PresentedEntrypointIndex sin establecer o negativo.Diagnóstico del planEstablece PresentedEntrypointIndex (/entrypoint-index:<n>); descubre los puntos de entrada con /list:entrypoints /map:<id>.
OL_E_ENTRYPOINT_REQUIREDSessionPlanner (world.presented-entrypoint no disponible)El mapa de NEW_MAP se ha resuelto, pero no hay índice presentado ni identidad. Siempre acompaña a OL_E_ENTRYPOINT_NOT_FOUND.Diagnóstico del planLo mismo.
OL_E_HOF_NOT_FOUNDSessionPlannerPlayerVehicle.Hof no es un Vehicles\...\*.hof instalado.Diagnóstico del planUsa una identidad de /list:hofs. (De todos modos, los campos del vehículo del jugador no son ejecutables en este build).
OL_E_MAP_NOT_FOUNDLaunchValidation; SessionPlannerValidación: NEW_MAP con MapIdentity sin establecer o que no tiene la forma maps\<dir>\global.cfg. Planificador: el mapa no está instalado.Diagnóstico del planUsa una identidad de /list:maps.
OL_E_NOT_FOUNDCliProgram.ClassifySe escapó una FileNotFoundException/DirectoryNotFoundException sin código, por ejemplo /list:repaints con un /vehicle-scope desconocido, o /list:entrypoints con un /map desconocido.Envelope de la CLI, salida 6Corrige la identidad.
OL_E_REPAINT_NOT_FOUNDSessionPlannerPlayerVehicle.Repaint no es un elemento .cti del modelo (solo se comprueba cuando Model está establecido).Diagnóstico del planUsa una identidad de /list:repaints /vehicle-scope:<bus>.
OL_E_SITUATION_MAP_NOT_FOUNDSessionPlannerEl mapa referenciado dentro del .osn seleccionado no está instalado.Diagnóstico del planInstala el mapa o elige otra situación.
OL_E_SITUATION_NOT_FOUNDLaunchValidation; SessionPlannerSAVED_SITUATION sin SituationIdentity, o el .osn no está instalado.Diagnóstico del planUsa una identidad de /list:situations.
OL_E_VEHICLE_NOT_FOUNDSessionPlannerPlayerVehicle.Model no es un Vehicles\...\*.bus instalado.Diagnóstico del planUsa una identidad de /list:vehicles.

Instalación#

CódigoGenerado porSignificado / causa típicaSuperficieQué hacer
OL_E_INSTALLATION_BUSYInstallationLease.Acquire; OmsiLaunchService.RecoverPendingAsync; FileConfigurationTransaction.RestorePendingAsyncEl lease de la instalación (Local\OmsiLaunch.Installation.<hash>) lo tiene otro propietario en esta sesión de inicio de sesión de Windows, o sigue vivo un proceso de OMSI registrado en el diario (PID + hora de creación + ruta del ejecutable; o cualquier Omsi.exe de la raíz para un diario posterior a HandoffCreated sin PID).Inicio: diagnóstico de la sesión a través de OL_E_START_SESSION. Recuperación: lanzado (InvalidOperationException / IOException). Salida 7 de la CLI.Detén el otro propietario (session stop) o espera a que OMSI termine; después vuelve a intentarlo o usa /recover.
OL_E_INSTALLATION_NOT_FOUNDLaunchValidationInstallation.RootPath está vacío.Diagnóstico del planPasa el directorio de instalación.
OL_E_INSTALLATION_NOT_WRITABLESessionPlanner (transaction.exact-restore no disponible); también ValidateCurrentLa raíz no existe, tiene el atributo de solo lectura o no tiene directorio plugins\.Diagnóstico del planIndica una instalación de OMSI real y con permiso de escritura.
OL_E_PERMANENT_PLUGIN_HASH_MISMATCHRuntimeArtifactSet.ValidateInstalled (plan e inicio)Un archivo plugins\OmsiLaunch.* instalado difiere del hash de release-manifest.json (o del conjunto de archivos de referencia si no hay manifiesto).Diagnóstico del plan (plan no ejecutable, salida 1 de la CLI); diagnóstico de la sesión a través de OL_E_START_SESSION solo si los archivos cambian entre la planificación y el inicioVuelve a instalar el paquete de OmsiLaunch para que plugins\ y el manifiesto coincidan.
OL_E_PERMANENT_PLUGIN_MANIFEST_INCOMPLETERuntimeArtifactSet.ValidateInstalled (plan e inicio)El manifiesto no tiene entrada para un archivo obligatorio del plugin.Diagnóstico del plan; diagnóstico de la sesión a través de OL_E_START_SESSION en la misma carrera que arribaVuelve a instalar el paquete.
OL_E_PERMANENT_PLUGIN_MISSINGRuntimeArtifactSet.ValidateInstalled (plan e inicio)Falta un archivo obligatorio plugins\OmsiLaunch.* en la instalación de OMSI, o un archivo de plugins/ que figura en release-manifest.json no está instalado.Diagnóstico del plan; diagnóstico de la sesión a través de OL_E_START_SESSION en la misma carrera que arribaInstala el conjunto de archivos del plugin permanente (instalación).
OL_E_PLATFORM_CAPABILITY_MISSINGSolo CurrentWindowsX64Platform.ValidateCurrentCurrentPlatformSupported es false. El servicio no lo llama; no hay ninguna ruta actual que lo genere.Lanzado solo por ese métodoConsulta el código fuente.
OL_E_RELEASE_MANIFEST_INVALIDReleaseManifest.TryReadPluginHashes / ParsePluginHashesrelease-manifest.json está vacío, no es JSON, no tiene la matriz files, o tiene una entrada sin path/sha256, un hash que no son 64 dígitos hexadecimales, una ruta absoluta, que contiene :, un segmento vacío, . o .., o una ruta que aparece dos veces (comparando sin distinguir mayúsculas y minúsculas, con / y \ equivalentes). Se acepta un BOM UTF-8.Plan: envuelto en OL_E_RUNTIME_ARTIFACT_MISSING; inicio: a través de OL_E_START_SESSIONVuelve a instalar el paquete.

InvalidArgument#

CódigoGenerado porSignificado / causa típicaSuperficieQué hacer
OL_E_INVALID_ARGUMENTLaunchValidation; CliInput.Parse/ClassifyValidación: Date.Value/Time.Value establecido mientras el modo no es Explicit. CLI: flag desconocido, valor ausente, entero o rango incorrecto, /saved combinado con /map//entrypoint, ruta de comando desconocida, cualquier ArgumentException/FormatException sin código.Diagnóstico del plan; envelope de la CLI, salida 2Corrige el argumento.
OL_E_INVALID_SETTING_VALUEConfigurationCatalog.CreatePatch (inicio)Un valor de ajuste semántico está fuera de rango, no es booleano, no pertenece al conjunto permitido o está mal formado (graphics.particles necesita cuatro campos). Los valores no se validan durante la planificación.Diagnóstico de la sesión a través de OL_E_START_SESSIONUsa un valor de la tabla de ajustes.
OL_E_SETTING_NOT_WRITABLESessionPlanner; CliInput.BuildSpecAsync; BuildTransactionalOverlaysLa clave existe pero no admite escritura (advanced.multithreadingCalculate, advanced.multithreadingTextureLoad, graphics.texture, graphics.textureFilter).Diagnóstico del plan; salida 2 de la CLIQuita la clave.
OL_E_UNKNOWN_SETTINGSessionPlanner; CliInput.BuildSpecAsync; BuildTransactionalOverlaysLa clave no está en ConfigurationCatalog.Diagnóstico del plan; salida 2 de la CLIUsa una clave del catálogo.

LaunchSpec#

CódigoGenerado porSignificado / causa típicaSuperficieQué hacer
OL_E_SPEC_INVALIDLaunchSpecJson.ParseLa raíz no es un objeto JSON, o la deserialización no produjo ningún registro.Lanzado (InvalidDataException), salida 2 de la CLICorrige el archivo (LaunchSpec).
OL_E_SPEC_NOT_FOUNDLaunchSpecJson.LoadAsyncEl archivo de /spec no existe.Lanzado (FileNotFoundException), salida 6 de la CLIComprueba la ruta.
OL_E_SPEC_TOO_LARGELaunchSpecJson.LoadAsyncEl archivo supera 1 MiB.Lanzado (InvalidDataException), salida 2 de la CLIReduce el archivo.
OL_E_SPEC_UNKNOWN_PROPERTYLaunchSpecJson.ValidateUn miembro que no es una propiedad pública del registro en esa posición; mensaje OL_E_SPEC_UNKNOWN_PROPERTY: $.Path.Name.Lanzado (InvalidDataException), salida 2 de la CLIQuita o renombra el miembro.

LocalControl#

CódigoGenerado porSignificado / causa típicaSuperficieQué hacer
OL_E_CONTROL_COMMAND_UNKNOWNManejador del propietario (OwnerSession)El comando no es session.status, session.events, session.stop ni runtime.execute con un argumento operation.Respuesta de control; salida 7 de la CLIUsa un comando compatible.
OL_E_CONTROL_FAILEDCliente de la CLI (ReportForwarded, CliEventWatch)El propietario respondió Ok = false sin código de error.Envelope de la CLI, salida 7Lee el mensaje; revisa la consola/los diagnósticos del propietario.
OL_E_CONTROL_HANDLER_FAILEDLocalControlPlane.ServeAsyncEl manejador del propietario lanzó una excepción cuyo mensaje no lleva ningún código OL_E_ (por ejemplo, la sesión ya estaba cerrada), o la respuesta del manejador no se pudo serializar.Respuesta de controlConsulta session status; reinicia el propietario si ya no existe.
OL_E_CONTROL_MESSAGE_INVALIDLocalControlPlane (ambos extremos)Prefijo de longitud negativo o superior a 64 KiB (incluida una trama de solicitud demasiado grande), trama vacía, JSON null, una solicitud sin Command, o JSON que no se pudo descodificar.Respuesta de control / envelope de la CLIUsa el protocolo documentado (plano de control local).
OL_E_CONTROL_MESSAGE_TOO_LARGELocalControlPlane.TryRequestAsync (cliente)La propia solicitud serializada del cliente supera 64 KiB. Se notifica al llamador; no se envía nada.Respuesta de control / envelope de la CLIReduce la solicitud.
OL_E_CONTROL_RESPONSE_TOO_LARGELocalControlPlane.ServeAsync (propietario)La respuesta del propietario no cabe en la trama de 64 KiB. El propietario responde con este error tipado en lugar de descartar la respuesta. session.status y session.events nunca llegan a él: su historial de eventos se recorta empezando por lo más antiguo para que quepa.Respuesta de control / envelope de la CLIVuelve a intentarlo; para los eventos, léelos con más frecuencia.
OL_E_CONTROL_PROTOCOLLocalControlPlane, TryRequestBoundAsyncEl ProtocolVersion de la solicitud no es 0.1; la respuesta del propietario no se pudo descodificar o estaba vacía; el propietario cerró la conexión sin responder o la conexión se rompió después de establecerse; el propietario no notificó ningún SessionId.Respuesta de control / envelope de la CLIHaz coincidir las versiones del cliente y del propietario; consulta session status.
OL_E_CONTROL_SESSION_MISMATCHManejador del propietariosession.stop o runtime.execute sin un session_id igual al de la sesión activa.Respuesta de control; salida 7 de la CLIConsulta primero session.status y vincula la solicitud (la CLI lo hace automáticamente).

Otros#

CódigoGenerado porSignificado / causa típicaSuperficieQué hacer
OL_E_PLAN_NOT_RUNNABLEOmsiLaunchService.StartSessionAsyncEl plan recibido tiene IsRunnable = false, o la nueva planificación al iniciar no es ejecutable (Omsi.exe ha cambiado, se ha eliminado contenido, falta el conjunto de archivos del plugin); el mensaje enumera los códigos OL_E_ actuales.Lanzado (InvalidOperationException); salida 1 de la CLIVuelve a planificar y corrige los diagnósticos enumerados.

Presentación#

Todos los genera SessionVisualAssets (src/OmsiLaunch.Core/SessionVisualAssets.cs). Durante la planificación se envuelven en OL_E_SESSION_PRESENTATION_INVALID (el mensaje lleva el código); al iniciar se exponen a través de OL_E_START_SESSION.

CódigoSignificado / causa típicaQué hacer
OL_E_ITX_PROFILE_INVALIDEl archivo .itx está vacío, tiene un número impar de líneas no vacías o una línea de URL no es una URL http/https absoluta.Usa pares de líneas URL/destino.
OL_E_ITX_PROFILE_MISSINGOverrideProfilePath (resuelto respecto al directorio de trabajo del proceso) no existe. Se lanza como FileNotFoundException.Pasa una ruta .itx existente.
OL_E_ITX_PROFILE_REQUIREDInternetTextures.Mode es Override sin OverrideProfilePath. Salida 2 de la CLI cuando se lanza.Proporciona /internet-textures-profile:<file.itx>.
OL_E_ITX_TARGET_OUTSIDE_TEXTURE_PATHUna línea de destino es absoluta, contiene .., empieza por \, se resuelve fuera de la instalación, carece de un componente Texture\ o atraviesa una unión (junction) o un enlace simbólico.Usa destinos relativos Texture\....
OL_E_SPLASH_ASSET_DIRECTORY_MISSINGCustomAssetDirectory no existe.Corrige el directorio.
OL_E_SPLASH_ASSET_MISSINGFalta ENG.bmp o <LANG>.bmp en el directorio de recursos, o falta un assets\splash\<LANG>.bmp del paquete al inicializar .omsilaunch\assets\splash.Proporciona los BMP / vuelve a instalar el paquete.
OL_E_SPLASH_FORMAT_UNSUPPORTEDUn BMP del splash no es un mapa de bits BM de 640×480 y 24 bits.Convierte la imagen.

Proceso#

CódigoGenerado porSignificado / causa típicaSuperficieQué hacer
OL_E_PROCESS_CLEANUP_FAILEDOmsiLaunchService (rutas de fallo de inicio y de fallo del supervisor)Terminar OMSI o esperar a que termine durante la limpieza tras un error lanzó una excepción; a continuación sigue el mensaje interno.Diagnóstico de la sesión (añadido a una sesión Failed)Asegúrate de que no queda ningún Omsi.exe y, después, usa /recover si hay un diario pendiente.
OL_E_PROCESS_CREATION_TIME_FAILEDCurrentWindowsX64Platform.StartAsyncGetProcessTimes falló justo después de CreateProcessW (Win32=<code>); el proceso se termina.Diagnóstico de la sesión a través de OL_E_START_SESSIONVuelve a intentarlo; revisa el antivirus/los permisos.
OL_E_PROCESS_EXITED_EARLYOmsiLaunchService.SuperviseAsyncOMSI terminó antes de gameplay.entered (bloqueo, se cerró un cuadro de diálogo de error de OMSI, se cerró la ventana).Diagnóstico de la sesión (Failed); se ejecuta la restauraciónRevisa los registros propios de OMSI y logfile.txt; consulta RuntimeEvents para ver el último evento del plugin.
OL_E_PROCESS_START_FAILEDCurrentWindowsX64Platform.StartAsyncCreateProcessW falló (Win32=<code> en el mensaje).Diagnóstico de la sesión a través de OL_E_START_SESSIONResuelve el error Win32 (archivo ausente, acceso denegado, directiva).
OL_E_PROCESS_SUPERVISIONOmsiLaunchService.SuperviseAsyncEl bucle del supervisor lanzó una excepción (lectura de telemetría, espera/terminación del proceso, escritura del diario); OMSI se termina y se intenta la restauración.Diagnóstico de la sesión (Failed)Lee el mensaje interno y el registro del host.
OL_E_PROCESS_TERMINATE_FAILEDCurrentWindowsX64Platform.TerminateTerminateProcess falló (Win32=<code>).Dentro de los mensajes de OL_E_PROCESS_SUPERVISION / OL_E_PROCESS_CLEANUP_FAILEDTermina OMSI manualmente y, después, usa /recover.
OL_E_PROCESS_WAIT_FAILEDCurrentWindowsX64Platform.WaitForExitAsyncWaitForSingleObject sobre el handle del proceso falló.Dentro de los mensajes de OL_E_PROCESS_SUPERVISION / OL_E_PROCESS_CLEANUP_FAILEDLo mismo.

Runtime#

«Detalle de runtime» significa ErrorCode = OL_E_RUNTIME_OPERATION_FAILED con el código al principio de Values["detail"].

CódigoGenerado porSignificado / causa típicaSuperficieQué hacer
OL_E_CAMERA_PRESET_FAMILY_UNSUPPORTEDOmsiCameraLockWritercamera.lock con preset mientras family es 2 (externa) o 3 (mapa); los presets solo existen para conductor (0) y pasajero (1).Detalle de runtimeOmite preset o usa la familia 0/1.
OL_E_DATE_TIME_APPLY_FAILEDLaunchValidationModo Explicit de Date/Time sin valor o con componentes fuera de rango. El nombre es histórico; es un error de validación durante la planificación.Diagnóstico del planCorrige el valor (y ten en cuenta que la fecha/hora explícita no es ejecutable en este build).
OL_E_MAKEVEHICLE_BUS_NOT_FOUNDCurrentRuntimeControl.MakeBasicRoadVehicleroad-vehicles.spawn: la ruta del .bus no existe bajo el directorio de trabajo de OMSI (se comprueba antes de la llamada nativa para que OMSI no pueda sustituirlo por uno alternativo).Detalle de runtimeUsa una identidad de vehicles list//list:vehicles.
OL_E_MAKEVEHICLE_DELTA_MULTIPLEídemEl MakeVehicle nativo cambió la colección de vehículos de carretera en más de un objeto.Detalle de runtime (native_status, recuentos en el mensaje)Notifícalo; los objetos creados permanecen hasta que termina la sesión.
OL_E_MAKEVEHICLE_DELTA_ZEROídemLa colección no cambió; OMSI rechazó el vehículo sin avisar.Detalle de runtimeRevisa el archivo .bus; prueba otro modelo.
OL_E_MAKEVEHICLE_NATIVE_FAILEDídemCualquier otro estado nativo distinto de cero.Detalle de runtimeNotifícalo con los recuentos del mensaje.
OL_E_PLACE_RANDOM_BUS_FAILEDCurrentRuntimeControl.PlaceRandomBusLa llamada perfilada a PlaceRandomBus devolvió un estado de fallo.Detalle de runtimeVuelve a intentarlo cuando la fase de juego sea estable; notifícalo.
OL_E_RUNTIME_ARGUMENT_REQUIREDPublicCapabilityRegistry.ValidateRuntimeArguments; comprobaciones del lado del plugin (time.set sin hour/minute/second; camera.set sin family/field_of_view; camera.lock sin un family analizable; operaciones de vehículos/curvas)Falta un argumento obligatorio o está en blanco.Resultado de runtime (registro; salida 2 de la CLI) o detalle de runtime (plugin)Proporciona el argumento (control de runtime).
OL_E_RUNTIME_ARTIFACT_MISSINGOmsiLaunchService.PlanSessionAsyncNo se puede cargar el directorio/archivo de referencia del conjunto de archivos del plugin o el puente nativo indicado en OmsiLaunchRuntimePaths (puede envolver OL_E_RELEASE_MANIFEST_INVALID).Diagnóstico del planEjecuta desde un paquete íntegro.
OL_E_RUNTIME_BASELINE_UNAVAILABLERuntimeBatch (/runtime-write-batch, arnés INTERNAL)Falló la lectura de referencia time.read/camera.read, por lo que se omitió la prueba de escritura.Solo artefacto del loteNo está dirigido al usuario.
OL_E_RUNTIME_BUS_IDENTITY_INVALIDCurrentRuntimeControl.ValidateBasicBusIdentitymodel está vacío, tiene más de 240 caracteres, contiene NUL o .., no empieza por Vehicles\ o no termina en .bus.Detalle de runtimePasa Vehicles\<dir>\<file>.bus.
OL_E_RUNTIME_CHANNEL_BUSYninguno (se conserva por compatibilidad)Ya no se emite. Los builds anteriores lo generaban cuando una solicitud cancelada permanecía en el slot; ahora todas las rutas finales de una solicitud restablecen el slot, y una solicitud o respuesta residual encontrada al comienzo de una nueva solicitud se elimina.——
OL_E_RUNTIME_CHANNEL_CLOSEDOmsiLaunchService.LiveSession.RequestRuntimeAsyncEl buzón se ha desechado porque la sesión está terminando.Lanzado (InvalidOperationException)Ninguna acción; la sesión ha terminado.
OL_E_RUNTIME_CHANNEL_STATE_INVALIDCurrentRuntimeCommandStore.RequestAsyncEl slot del buzón contenía un valor de estado que no es inactivo, solicitado ni respondido (corrupción). El slot se restablece y se genera el error; la siguiente solicitud funciona con normalidad.Lanzado (InvalidDataException)Vuelve a intentarlo; notifícalo si persiste.
OL_E_RUNTIME_CONSTANTS_UNAVAILABLEOmsiRuntimeReadersEl puntero al bloque de constantes del vehículo es nulo.Detalle de runtimeEl vehículo no tiene constantes; no hay nada que hacer.
OL_E_RUNTIME_CONSTANT_NOT_FOUNDOmsiRuntimeReadersname no está en la tabla de constantes del vehículo.Detalle de runtimeEnumera primero las constantes.
OL_E_RUNTIME_CREATED_OBJECT_INVALIDOmsiRuntimeReaders.RegisterRoadVehicleHandleAsyncEl objeto creado por la generación tiene una VMT fuera del rango de la imagen de OMSI.Detalle de runtimeNotifícalo.
OL_E_RUNTIME_CREATED_OBJECT_NOT_IN_COLLECTIONídemEl objeto creado no está en la colección de vehículos de carretera.Detalle de runtimeNotifícalo.
OL_E_RUNTIME_CURVE_DEGENERATEOmsiRuntimeReaders.EvaluateRoadVehicleCurveAsyncDos puntos consecutivos de la curva comparten la misma X.Detalle de runtimeProblema de contenido en la curva del vehículo.
OL_E_RUNTIME_CURVE_EMPTYídemLa curva no tiene puntos.Detalle de runtimeLo mismo.
OL_E_RUNTIME_CURVE_INVALIDídemNingún segmento de la curva contiene x.Detalle de runtimeEvalúa dentro del dominio de la curva.
OL_E_RUNTIME_CURVE_NOT_FOUNDídemname es desconocido o su puntero de función es nulo.Detalle de runtimeEnumera primero las curvas.
OL_E_RUNTIME_HOF_UNAVAILABLEOmsiRuntimeReaders.ReadRoadVehicleHofsAsyncEl puntero a la definición del vehículo es nulo.Detalle de runtimeEl handle hace referencia a un vehículo sin datos de definición.
OL_E_RUNTIME_INSTALLATION_INCOMPLETECliProgram.RunAsync (modo propietario)Falta plugins\OmsiLaunch.Plugin.opl o plugins\OmsiLaunch.Native.x86.dll junto al ejecutable.Envelope de la CLI, salida 7Vuelve a instalar el paquete.
OL_E_RUNTIME_OBJECT_HANDLE_REQUIREDCurrentRuntimeControlFalta handle o está en blanco para road-vehicle.read, human.read, vehicle.variables.list, vehicle.string-variables.list, vehicle.constants.list, vehicle.curves.list (normalmente el registro los rechaza antes con OL_E_RUNTIME_ARGUMENT_REQUIRED).Detalle de runtimeProporciona el handle.
OL_E_RUNTIME_OBJECT_HANDLE_STALEOmsiRuntimeReadersEl handle es desconocido, el objeto ha salido de la colección, la generación de direcciones ha avanzado o la huella del objeto (VMT + identidad de la definición/el modelo) ha cambiado porque la dirección se ha reutilizado. Punto ciego residual: la misma clase y el mismo modelo recreados en la misma dirección entre dos lecturas de la lista.Detalle de runtimeVuelve a ejecutar road-vehicles.list/humans.list y usa el nuevo handle.
OL_E_RUNTIME_OPERATION_FAILEDCurrentRuntimeControl.Execute; CurrentRuntimeCommandMailbox.TryDispatch; alternativa de D3DRuntimeApiEnvoltorio genérico de fallos del lado del plugin; Values["detail"] contiene el mensaje (a menudo un código más específico) y Values["exception"] el tipo de excepción. Una excepción que se escapa de una operación dentro del despachador del buzón también se responde con este código (sin valores) en lugar de dejar la solicitud sin respuesta.Resultado de runtimeLee detail.
OL_E_RUNTIME_OPERATION_UNAVAILABLECurrentRuntimeControl.ExecuteEl plugin no tiene implementación para una operación que el registro permitió (desfase de versiones entre el registro y el plugin).Detalle de runtimeVuelve a instalar un paquete coherente.
OL_E_RUNTIME_OPERATION_UNKNOWNPublicCapabilityRegistry.ValidateRuntimeArgumentsLa operación no está en PublicRuntimeOperationIds, lo que incluye todas las operaciones internal.*. Se comprueba antes de buscar la sesión.Resultado de runtime; respuesta de control; salida 2 de la CLIUsa un id de operación público.
OL_E_RUNTIME_PLAYER_VEHICLE_UNAVAILABLEOmsiCameraLockWritercamera.lock con preset cuando no hay vehículo del jugador (las sesiones headless no tienen ninguno). También se notifica como code del evento camera.lock.degraded cuando falla la reaplicación.Detalle de runtime / evento de runtimeBloquea sin preset, o usa una sesión con vehículo del jugador.
OL_E_RUNTIME_PROTOCOL_MISMATCHD3DRuntimeApiUn resultado D3D correcto no tenía valores, o tenía una cadena de estado del dispositivo desconocida.Lanzado (OmsiRuntimeException)Haz coincidir las versiones del host y del plugin.
OL_E_RUNTIME_REQUEST_ID_REUSEDCurrentRuntimeCommandStore.RequestAsyncEl slot contiene una respuesta obsoleta con el mismo id de solicitud que la nueva solicitud. La respuesta obsoleta se elimina antes de generar el error.Lanzado (InvalidOperationException)Usa ids de solicitud estrictamente crecientes.
OL_E_RUNTIME_REQUEST_TIMEOUTCurrentRuntimeCommandStore.RequestAsyncNo hay respuesta dentro de timeout; el slot se restablece y una respuesta tardía se descarta.Lanzado (TimeoutException); salida 5 de la CLIVuelve a intentarlo con un timeout más largo; comprueba que OMSI no está bloqueado (cuadro de diálogo modal, carga).
OL_E_RUNTIME_RESPONSE_INVALIDCurrentRuntimeCommandStoreEl envelope de la respuesta está corrupto, tiene una longitud incorrecta (negativa, cero o mayor que el slot), un id de sesión ajeno o un id de solicitud distinto. El slot se restablece antes de generar el error, de modo que la siguiente solicitud funciona con normalidad.Lanzado (InvalidDataException)Vuelve a intentarlo; notifícalo si persiste.
OL_E_RUNTIME_RESPONSE_TOO_LARGECurrentRuntimeCommandMailbox.TryDispatchEl resultado serializado supera el buzón de 64 KiB. Los resultados de listas acotadas (los que tienen returned_count y truncated) se acortan para que quepan (auditoría de documentación BUG-05); en la práctica, el código sigue siendo alcanzable para timetable.logs.read, que no está acotado.Resultado de runtimeUsa una operación más específica (por ejemplo, road-vehicles.read en lugar de road-vehicles.list con colecciones enormes).
OL_E_RUNTIME_SCRIPT_OBJECT_UNAVAILABLEOmsiRuntimeReadersEl puntero a la definición o al estado del script del vehículo es nulo.Detalle de runtimeEl vehículo no tiene objetos de script.
OL_E_RUNTIME_SESSION_MISMATCHOmsiLaunchService.ExecuteRuntimeAsync; CurrentRuntimeCommandStore; buzón del pluginRuntimeCommand.SessionId difiere del id de sesión del handle (lo lanza el host), o una solicitud llegó a un plugin vinculado a otra sesión (el plugin lo devuelve como resultado tipado).Lanzado (InvalidOperationException) / resultado de runtimeConstruye el comando con session.SessionId.
OL_E_RUNTIME_SETTING_NOT_PERSISTENTCurrentRuntimeControl.SetWeatherweather.set siempre se rechaza: OMSI sobrescribe los campos meteorológicos perfilados en su siguiente ciclo meteorológico, por lo que una escritura no puede notificarse como un cambio semántico.Resultado de runtimeNinguna acción; weather.set es UNAVAILABLE.
OL_E_RUNTIME_SETTING_UNAVAILABLEOmsiWeatherWriterNombre de campo meteorológico desconocido. Actualmente inalcanzable porque weather.set se rechaza antes.Detalle de runtime (definido)Consulta el código fuente src/OmsiLaunch.Interop/OmsiWeatherWriter.cs.
OL_E_RUNTIME_STRING_VARIABLE_NOT_FOUNDOmsiRuntimeReadersname no está en la tabla de variables de cadena.Detalle de runtimeEnumera primero las variables de cadena.
OL_E_RUNTIME_VALUE_INVALIDOmsiWeatherWriter.ParseBooleanUn booleano meteorológico no es true/false/1/0. Actualmente inalcanzable (véase arriba).Detalle de runtime (definido)Consulta el código fuente.
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 no es un entero, family 0..3, preset 0..255; road-vehicles.place-random: ai_type 0..255, group/type/tour/line 0..65535 (type puede ser -1), scheduled 0..1; vehicle.variable.set: value no finito; vehicle.curve.evaluate: x no finito.Detalle de runtimeUsa un valor dentro del rango.
OL_E_RUNTIME_VARIABLE_NOT_FOUNDOmsiRuntimeReadersname no está en la tabla de variables numéricas.Detalle de runtimeEnumera primero las variables.
OL_E_RUNTIME_VARIABLE_UNAVAILABLEOmsiRuntimeReadersEl slot de la variable o la dirección del valor es nulo.Detalle de runtimeLa variable no está materializada para este vehículo.
OL_E_TIME_APPLY_FAILEDCurrentRuntimeControl.SetTimeLos escalares del reloj se escribieron, pero la llamada nativa perfilada a SetTime devolvió un fallo.Detalle de runtimeVuelve a intentarlo; vuelve a leer el valor con time.read.

RuntimeD3D#

Todos los genera CurrentRuntimeControl (asignación ThrowD3D del estado nativo; detail lleva la operación y el HRESULT, native_status el estado numérico). Superficie: resultado de runtime con el código en ErrorCode; D3DRuntimeApi lo vuelve a lanzar como OmsiRuntimeException.

CódigoEstado nativo / causaQué hacer
OL_E_D3D_DEVICE_LOST8: el dispositivo Direct3D se ha perdido.Espera a d3d.restored; vuelve a crear las texturas (la generación ha cambiado).
OL_E_D3D_INVALID_ARGUMENT14: width, height, level, x, y, format o handle ausente o no válido (rangos: width/height 1..4096, levels 0..16, level 0..15, x/y 0..4095).Corrige los argumentos.
OL_E_D3D_INVALID_PIXEL_BUFFERpixels_base64 no es Base64 válido o supera 48 KiB.Envía rectángulos más pequeños.
OL_E_D3D_INVALID_TEXTURE_FORMAT6, o un nombre de format desconocido (válidos: A8R8G8B8, X8R8G8B8, R5G6B5, X1R5G5B5, A1R5G5B5, A4R4G4B4, A8, L8, A8L8).Usa un formato de la lista.
OL_E_D3D_NATIVE_CALL_FAILEDCualquier otro estado; el HRESULT está en detail.Notifícalo con el HRESULT.
OL_E_D3D_NOT_READY7: el dispositivo no está listo (antes del primer fotograma o durante la detención).Vuelve a intentarlo después de d3d.ready.
OL_E_D3D_RESET_IN_PROGRESS9: hay un reset del dispositivo en curso.Vuelve a intentarlo después de d3d.restored.
OL_E_D3D_RESOURCE_RELEASED13: el handle de la textura ya se había liberado.No reutilices handles liberados.
OL_E_D3D_STALE_RESOURCE_HANDLE12: el handle pertenece a una generación anterior del dispositivo; o la cadena del handle no es d3dtex-<session>-<hex> / es cero.Vuelve a crear la textura.

Sesión#

CódigoGenerado porSignificado / causa típicaSuperficieQué hacer
OL_E_CAPABILITY_UNAVAILABLESessionPlanner; ApplyTelemetry en plugin.request.unsupportedPlan: se ha solicitado LastMapState, EntrypointIdentity, el modo de fecha/hora/año, el modo meteorológico, campos del vehículo del jugador o documentos de entrada (Requested capability unavailable: <name>). Telemetría: el plugin rechazó el handoff (no puede ocurrir con un plan ejecutable).Diagnóstico del plan; diagnóstico de la sesiónQuita la solicitud no compatible (limitaciones conocidas).
OL_E_HEADLESS_ARM_FAILEDApplyTelemetry en headless.arm.failedEl plugin no pudo armar en OMSI el hook de un solo uso para el inicio headless.Diagnóstico de la sesión (Failed)Verifica el build; notifícalo.
OL_E_NO_ACTIVE_SESSIONCliente de la CLI (ReportForwarded, CliEventWatch)Ningún propietario responde en la canalización de control de la instalación (no hay sesión, o el propietario aún se está iniciando/validando).Envelope de la CLI, salida 4Inicia una sesión o espera hasta que esté en Running.
OL_E_PLUGIN_NOT_LOADEDSuperviseAsyncTranscurrió StartupTimeoutSeconds antes de plugin.started (OMSI no cargó plugins\OmsiLaunch.Plugin.opl, o está detenido antes de la inicialización del plugin).Diagnóstico de la sesión (Failed)Revisa el conjunto de archivos del plugin, plugins\OmsiLaunch.Plugin.opl y el logfile.txt de OMSI.
OL_E_PLUGIN_PROTOCOL_MISMATCHApplyTelemetry en plugin.handoff.invalid o JSON de telemetría no analizableEl plugin no pudo leer/verificar el handoff de arranque (versión 3/4, SHA-256), o envió telemetría no válida.Diagnóstico de la sesión (Failed)Haz coincidir las versiones del host y del plugin (vuelve a instalar el paquete).
OL_E_SESSION_ALREADY_ACTIVECliProgram.RunAsyncYa hay un propietario que responde a session.status para esta instalación.Envelope de la CLI, salida 7Usa comandos de cliente (session status, session stop, comandos de runtime).
OL_E_SESSION_NOT_RUNNINGOmsiLaunchService.ExecuteRuntimeAsyncEl estado de la sesión no es Running.Lanzado (InvalidOperationException)Primero WaitForAsync(session, SessionState.Running, ...).
OL_E_SESSION_PRESENTATION_INVALIDSessionPlannerNo se pudo construir el plan de splash/ITX; el mensaje lleva el código de presentación.Diagnóstico del planConsulta Presentación.
OL_E_SESSION_START_FAILEDWindowsHost.ShowFailure (cuadro de diálogo de OmsiLaunchW)Código de reserva que se muestra cuando un plan de lanzamiento no es ejecutable o la sesión no llegó a la fase de juego, y no existe ningún diagnóstico OL_E_.Solo cuadro de mensajeLee .omsilaunch\diagnostics.
OL_E_SITUATION_LOAD_FAILEDApplyTelemetry en world.situation.failedEl inicio nativo de la situación guardada devolvió un fallo (native_status en el evento).Diagnóstico de la sesión (Failed)Revisa el .osn y su mapa.
OL_E_STARTUP_TIMEOUTSuperviseAsyncEl plugin se inició, pero no se alcanzó Running dentro de StartupTimeoutSeconds.Diagnóstico de la sesión (Failed)Aumenta /startup-timeout para mapas grandes; consulta RuntimeEvents para ver el último evento del mundo.
OL_E_START_SESSIONOmsiLaunchService.StartAsyncCualquier excepción en la ruta de inicio; el mensaje es el mensaje interno (normalmente empieza por el código interno).Diagnóstico de la sesión (Failed)Actúa según el código interno.
OL_E_WORLD_START_FAILEDApplyTelemetry en world.failedEl inicio nativo de NEW_MAP devolvió un fallo (native_status en el evento).Diagnóstico de la sesión (Failed)Revisa el mapa, el índice del punto de entrada y los registros de OMSI.

SessionProfile#

Todos los genera SessionProfileCompiler (src/OmsiLaunch.Core/SessionProfiles.cs) o CliInput, lanzados como SessionProfileException (una IOException con Code), salida 2 de la CLI. Consulta perfiles de sesión.

CódigoSignificado / causa típicaQué hacer
OL_E_SESSION_PROFILE_ASSET_MISSINGEl directorio assets del splash del preset o el archivo profile de texturas de Internet no existe dentro del paquete.Añade el recurso.
OL_E_SESSION_PROFILE_INVALIDInfracción estructural o de límites: más de 256 KiB, no hay exactamente un mapeo raíz, anclas YAML, clave desconocida, falta una clave obligatoria, un valor no escalar donde se exige un escalar, id difiere del nombre del directorio, presets fuera de 1..5 o index duplicado, timeouts no positivos, modo meteorológico/de splash/de texturas de Internet no compatible, fecha/hora que no es explicit, YAML no válido, errores de análisis de números/fechas.Corrige el YAML según el mensaje.
OL_E_SESSION_PROFILE_MAP_MISMATCHcompatibility.maps no está vacío y no contiene el mapa seleccionado (NEW_MAP) o el mapa de la situación seleccionada (SAVED_SITUATION).Elige un mundo compatible.
OL_E_SESSION_PROFILE_NOT_FOUND<root>\.omsilaunch\session-profiles\<id>\profile.yaml no existe.Comprueba el id.
OL_E_SESSION_PROFILE_OVERRIDE_CONFLICTUn argumento explícito de la CLI se dirige a un campo que pertenece al perfil/preset seleccionado.Quita el flag o elige otro preset.
OL_E_SESSION_PROFILE_PATH_ESCAPEEl id contiene \, /, : o ..; o una ruta de recurso es absoluta, sale del paquete o atraviesa una unión (junction) o un enlace simbólico.Mantén las rutas dentro del paquete.
OL_E_SESSION_PROFILE_PRESET_NOT_FOUND/predefined-profile-index falta, está fuera de 1..5 o el perfil no lo declara.Usa un índice de preset declarado.
OL_E_SESSION_PROFILE_SCHEMA_UNSUPPORTEDschema no es omsilaunch.session-profile/v1.Usa el esquema compatible.
OL_E_SESSION_PROFILE_SETTING_NOT_WRITABLEUna clave de ajuste del preset es conocida pero no admite escritura.Quita la clave.
OL_E_SESSION_PROFILE_SETTING_UNKNOWNUna clave de ajuste del preset no está en el catálogo.Usa una clave del catálogo.

Transacción#

Consulta transacciones y recuperación.

CódigoGenerado porSignificado / causa típicaSuperficieQué hacer
OL_E_CLOSECHECK_REMOVE_FAILEDOmsiLaunchService.RemoveStaleClosecheckUn closecheck obsoleto sigue existiendo después de File.Delete.Diagnóstico de la sesión a través de OL_E_START_SESSIONElimina <root>\closecheck manualmente (permisos).
OL_E_RECOVERY_ABSENT_OWNERSHIP_MISMATCHFileConfigurationTransaction.RestoreAsyncUna ruta que no existía antes de la sesión contiene ahora un contenido distinto del que aplicó la sesión; no se elimina y se conserva el diario.Lanzado (IOException); dentro de OL_E_RESTORE_FAILED / OL_E_START_SESSION; salida 8 de la CLIExamina el archivo; elimínalo o muévelo y, después, usa /recover.
OL_E_RECOVERY_ABSENT_OWNERSHIP_UNVERIFIEDRestoreAsync (diario anterior a las huellas)El diario no tiene huella del contenido aplicado para una ruta que originalmente no existía y no es de eliminación, por lo que no se puede demostrar la propiedad. Al iniciar la sesión, la recuperación se aplaza y se reintenta con los bytes planificados de esta sesión; a través de RecoverPendingAsync se lanza.Lanzado (IOException); salida 8 de la CLIInicia una sesión con la misma spec (aporta los bytes), o examina y elimina el archivo y, después, usa /recover.
OL_E_RECOVERY_BACKUP_CORRUPTRestoreAsyncEl SHA-256 de una copia de seguridad no coincide con el snapshot registrado en el diario; no se escribe nada.Lanzado; dentro de OL_E_RESTORE_FAILED; salida 8 de la CLIRestaura el archivo desde tu propia copia de seguridad; después elimina el diario solo cuando estés seguro.
OL_E_RECOVERY_JOURNAL_MISSINGRestoreAsyncExisten snapshots en memoria, pero journal.json ha desaparecido (eliminado durante la sesión).Lanzado; dentro de OL_E_RESTORE_FAILEDVerifica manualmente los archivos de la sesión.
OL_E_RECOVERY_JOURNAL_REMOVE_FAILEDFileConfigurationTransaction.RemoveJournaljournal.json sigue existiendo después de eliminarlo (la propia restauración se completó correctamente y se verificó).Lanzado; dentro de OL_E_RESTORE_FAILED; salida 8 de la CLIElimina <root>\.omsilaunch\journal.json (permisos) o vuelve a ejecutar /recover (idempotente).
OL_E_RESTORE_DEFERREDOmsiLaunchService (fallo de inicio / supervisor)No se pudo confirmar la salida de OMSI, por lo que los archivos no se reemplazaron mientras OMSI todavía podía estar usándolos; se conserva el diario.Diagnóstico de la sesión (Failed)Cuando Omsi.exe haya terminado, ejecuta /recover (o el siguiente inicio recupera automáticamente).
OL_E_RESTORE_FAILEDOmsiLaunchService (fallo de inicio / supervisor)RestoreAsync lanzó una excepción; el mensaje lleva el código interno; se conserva el diario.Diagnóstico de la sesión (Failed); salida 8 de la CLI cuando se lanza desde /recoverActúa según el código interno y, después, usa /recover.

Advertencia#

CódigoGenerado porSignificadoSuperficieQué hacer
OL_W_RESTORE_FOREIGN_FILE_RETAINEDFileConfigurationTransaction.RestoreAsyncUna ruta de eliminación de sesión (destino ITX, Texture\standard.ipr, closecheck) no existía antes de la sesión y existe ahora, pero nunca se inició ningún proceso de OMSI bajo este diario, por lo que el archivo no puede ser un subproducto de la sesión. Se conserva y se notifica (mensaje = ruta relativa, Data["sha256"]); la transacción se completa igualmente.Diagnóstico de la sesión / RecoveryStatus.Diagnostics (no afecta al estado)Examina el archivo; elimínalo tú mismo si no lo quieres.

Códigos de diagnóstico que no son errores#

CódigoEmitido porMensaje / datosSignificado
process.startedOmsiLaunchService.LiveSession.Attachmensaje = PID; Data["thread_id"], Data["creation_utc"] (ISO 8601)Se creó Omsi.exe y se registró su identidad. Diagnóstico de la sesión.
closecheck.stale-removedOmsiLaunchService.RemoveStaleClosecheckmensaje = SHA-256 del archivo eliminadoUn closecheck que existía antes de la sesión se eliminó de forma permanente (SuppressStaleClosecheckWarning = true). Diagnóstico de la sesión.
restore.session-artifact-removedFileConfigurationTransaction.RestoreAsyncmensaje = ruta relativa; Data["sha256"]OMSI volvió a crear una ruta de eliminación de sesión durante una sesión cuyo proceso se había iniciado; se eliminó para restaurar su ausencia original. Diagnóstico de la sesión / RecoveryStatus.Diagnostics.
plugin.integrity.referenceOmsiLaunchService.PlanSessionAsyncmensaje = manifest o selfQué referencia usa la validación del plugin permanente. Diagnóstico del plan.
session_profile.selectedSessionPlannermensaje = id del perfil; Data["session_profile.id|name|version|author|preset_id|preset_index|preset_name|path"]Procedencia de una sesión compilada a partir de un perfil de sesión. Diagnóstico del plan.

Los nombres de los eventos de runtime (RuntimeEvent.Type, no son diagnósticos) se enumeran en el ciclo de vida de la sesión.