Skip to main content

NPipeline Analyzer Code Mapping

This document provides a comprehensive mapping of all NPipeline analyzer diagnostic codes, organized by category.

Complete Analyzer Mapping

Resilience Analyzers (NP90XX)

CodeNameCategoryDescription
NP9001ResilientExecutionConfigurationAnalyzerResilienceEnsures proper configuration for node restart functionality

Async Programming Analyzers (NP91XX)

CodeNameCategoryDescription
NP9101BlockingAsyncOperationAnalyzerPerformanceDetects blocking operations in async methods
NP9102OperationCanceledExceptionAnalyzerPerformancePrevents swallowing of OperationCanceledException
NP9103SynchronousOverAsyncAnalyzerPerformanceIdentifies sync-over-async anti-patterns
NP9104CancellationTokenRespectAnalyzerPerformanceEnsures proper cancellation token propagation

Performance Analyzers (NP92XX)

CodeNameCategoryDescription
NP9201LinqInHotPathsAnalyzerPerformancePrevents LINQ usage in performance-critical paths
NP9202InefficientStringOperationsAnalyzerPerformanceIdentifies inefficient string operations
NP9203AnonymousObjectAllocationAnalyzerPerformanceDetects unnecessary anonymous object allocations
NP9204ValueTaskOptimizationAnalyzerPerformanceEncourages ValueTask optimization
NP9205SourceNodeStreamingAnalyzerPerformanceEnsures proper streaming patterns in source nodes

Reliability Analyzers (NP93XX)

CodeNameCategoryDescription
NP9301InefficientExceptionHandlingAnalyzerReliabilityIdentifies inefficient exception handling patterns
NP9302SinkNodeInputConsumptionAnalyzerData ProcessingEnsures sink nodes consume all input data
NP9303PipelineContextAccessAnalyzerBest PracticeDetects unsafe PipelineContext access patterns

Best Practices Analyzers (NP94XX)

CodeNameCategoryDescription
NP9401DependencyInjectionAnalyzerBest PracticePromotes proper dependency injection patterns

Configuration Analyzers (NP95XX)

CodeNameCategoryDescription
NP9501UnboundedMaterializationConfigurationAnalyzerConfigurationPrevents unbounded memory growth in retry options
NP9502InappropriateParallelismConfigurationAnalyzerConfigurationDetects inappropriate parallelism settings
NP9503BatchingConfigurationMismatchAnalyzerConfigurationIdentifies batching configuration mismatches
NP9504TimeoutConfigurationAnalyzerConfigurationDetects inappropriate timeout configurations

Quick Reference by Code

CodeAnalyzerCategorySeverity
NP9001Resilience ConfigurationResilienceWarning
NP9101Blocking OperationsPerformanceWarning
NP9102Swallowed CancellationPerformanceWarning
NP9103Sync-Over-AsyncPerformanceWarning
NP9104Cancellation Not RespectedPerformanceWarning
NP9201LINQ in Hot PathsPerformanceWarning
NP9202Inefficient StringsPerformanceWarning
NP9203Anonymous ObjectsPerformanceWarning
NP9204ValueTask MissingPerformanceWarning
NP9205Non-Streaming SourcePerformanceWarning
NP9301Inefficient ExceptionsReliabilityWarning
NP9302Input Not ConsumedData ProcessingError
NP9303Unsafe Context AccessBest PracticeWarning
NP9401Missing DIBest PracticeWarning
NP9501Unbounded MaterializationConfigurationError
NP9502Bad ParallelismConfigurationWarning
NP9503Batching MismatchConfigurationWarning
NP9504Bad TimeoutsConfigurationWarning

By Category

Resilience (NP90XX)

  • NP9001: Incomplete resilience configuration detection

Async Programming (NP91XX)

  • NP9101: Blocking async operations
  • NP9102: Swallowed cancellation exceptions
  • NP9103: Fire-and-forget async patterns
  • NP9104: Disrespected cancellation tokens

Performance (NP92XX)

  • NP9201: LINQ in hot paths
  • NP9202: Inefficient string operations
  • NP9203: Anonymous object allocations
  • NP9204: Missing ValueTask optimization
  • NP9205: Non-streaming SourceNode patterns

Reliability (NP93XX)

  • NP9301: Inefficient exception handling
  • NP9302: Unconsumed sink node input
  • NP9303: Unsafe PipelineContext access

Best Practices (NP94XX)

  • NP9401: Missing dependency injection

Configuration (NP95XX)

  • NP9501: Unbounded materialization
  • NP9502: Inappropriate parallelism
  • NP9503: Batching configuration mismatch
  • NP9504: Timeout configuration issues

Diagnostic Severity Levels

LevelMeaningDefault Action
ErrorCritical issue preventing proper operationBuild fails
WarningIssue that may cause problemsBuild succeeds with warning
InfoSuggestion for improvementBuild succeeds silently

Configuration

All analyzers can be configured in .editorconfig:

# Configure individual analyzers
dotnet_diagnostic.NP9001.severity = error
dotnet_diagnostic.NP9101.severity = error
dotnet_diagnostic.NP9205.severity = error

Learn More