{"record":{"id":"85c356a0e44a81d8","repo":"aspnetboilerplate/aspnetboilerplate","slug":"unknown-logseverity-value","errorCode":null,"errorMessage":"Unknown LogSeverity value: ","messagePattern":"Unknown LogSeverity value: ","errorType":"exception","errorClass":"AbpException","httpStatus":null,"severity":"error","filePath":"src/Abp/Logging/LoggerExtensions.cs","lineNumber":31,"sourceCode":"            switch (severity)\n            {\n                case LogSeverity.Fatal:\n                    logger.Fatal(message);\n                    break;\n                case LogSeverity.Error:\n                    logger.Error(message);\n                    break;\n                case LogSeverity.Warn:\n                    logger.Warn(message);\n                    break;\n                case LogSeverity.Info:\n                    logger.Info(message);\n                    break;\n                case LogSeverity.Debug:\n                    logger.Debug(message);\n                    break;\n                default:\n                    throw new AbpException(\"Unknown LogSeverity value: \" + severity);\n            }\n        }\n\n        public static void Log(this ILogger logger, LogSeverity severity, string message, Exception exception)\n        {\n            switch (severity)\n            {\n                case LogSeverity.Fatal:\n                    logger.Fatal(message, exception);\n                    break;\n                case LogSeverity.Error:\n                    logger.Error(message, exception);\n                    break;\n                case LogSeverity.Warn:\n                    logger.Warn(message, exception);\n                    break;\n                case LogSeverity.Info:\n                    logger.Info(message, exception);","sourceCodeStart":13,"sourceCodeEnd":49,"githubUrl":"https://github.com/aspnetboilerplate/aspnetboilerplate/blob/2323c13a152aa0ebfb37af3830f687d7f5b53795/src/Abp/Logging/LoggerExtensions.cs#L13-L49","documentation":"Thrown by the Abp LoggerExtensions.Log(this ILogger, LogSeverity, string) extension when it receives a LogSeverity enum value it does not recognize. The switch handles Fatal/Error/Warn/Info/Debug; anything else hits the default case. In practice this happens with an invalid cast or out-of-range value.","triggerScenarios":"Calling logger.Log((LogSeverity)99, \"msg\") or casting an int/other enum into LogSeverity that is not a defined member of the Abp.Logging.LogSeverity enum.","commonSituations":"Mapping log levels from another framework with an unverified cast; persisted log-level int out of range; a second enum type accidentally used where LogSeverity was expected.","solutions":["Only pass valid LogSeverity values (Fatal, Error, Warn, Info, Debug)","Use Enum.TryParse<LogSeverity>(value, out var sev) before logging instead of a raw cast","Fix the mapping code that converts external log levels to LogSeverity and add an explicit default mapping (e.g. Error for unknown)","If mapping from another enum, match on that enum's cases and map each explicitly"],"exampleFix":"// before\nlogger.Log((LogSeverity)logLevelInt, message); // logLevelInt=42\n// after\nif (Enum.IsDefined(typeof(LogSeverity), logLevelInt))\n    logger.Log((LogSeverity)logLevelInt, message);\nelse\n    logger.Error(message);","handlingStrategy":"type-guard","validationCode":"bool IsValidSeverity(LogSeverity severity) =>\n    severity == LogSeverity.Fatal || severity == LogSeverity.Error || severity == LogSeverity.Warn ||\n    severity == LogSeverity.Info || severity == LogSeverity.Debug;","typeGuard":"static bool IsDefinedLogSeverity(LogSeverity s) => Enum.IsDefined(typeof(LogSeverity), s);","tryCatchPattern":"try { logger.Log(severity, message); }\ncatch (AbpException ex) when (ex.Message.Contains(\"Unknown LogSeverity value\"))\n{\n    logger.Error(message); // safe fallback\n}","preventionTips":["Never raw-cast ints or foreign enums to LogSeverity; use Enum.TryParse","Map external log levels explicitly with a default branch","Add tests covering every branch of log-level mapping helpers"],"tags":["logging","enum","abp"],"backgroundTag":"invalid-enum-value","analyzedSha":"2323c13a152aa0ebfb37af3830f687d7f5b53795","analyzedAt":"2026-09-08T08:00:50.638Z","contentChangedAt":"2026-09-08T08:00:50.638Z","schemaVersion":2},"datasetVersion":"2026-09-17T15:17:12.973Z"}