This reference documents all 118 diagnostic codes emitted by the Oproto.FluentDynamoDb source generator. Each code links to a detailed page with the message format, description, triggering example, and fix.
Prefix
Code Range
Domain
DISC
001–006
Discriminator configuration and pattern matching
DYNDB
001–036, 101–115, 120–127, 1001–1004
Core DynamoDB entity validation and mapping
FDDB
001–006, 0020–0021, 050–055, 060–062, 070–072, 080, 090, 100–104, 110–116, 120–126
Table/index generation and configuration
PROJ
001–006, 101–102
Projection model validation
SEC
001–002
Security and package dependency checks
Prefix Distinction: DYNDB vs FDDB
Both DYNDB and FDDB prefixes relate to the FluentDynamoDb source generator:
DYNDB covers core entity validation — constraints on individual entity properties, key formats, type compatibility, and attribute correctness.
FDDB covers table and index generation — multi-entity table configuration, index consolidation, projection wiring, and computed key format validation.
The DYNDB prefix uses range bands to group related diagnostics by functional area:
Range
Area
001–036
Core validation (keys, types, attributes, references)
101–115
Advanced type system (TTL, JSON, blobs, spatial, deprecation)
120–127
Index attribute validation (GSI/LSI configuration)
1001–1004
Extension method wrapper generation
The varying digit widths within DYNDB (3-digit, 4-digit) reflect these logical groupings rather than an inconsistency.
FDDB Numbering Inconsistency
Codes FDDB0020 and FDDB0021 use four-digit numbering while other FDDB codes use three-digit numbering. This is a known inconsistency retained for backward compatibility — these codes were introduced before the current naming convention was established and cannot be renumbered without breaking existing suppressions.
DISC — Discriminator Configuration
Code
Severity
Title
DISC001
Warning
Both DiscriminatorValue and DiscriminatorPattern specified
DISC002
Error
DiscriminatorValue or DiscriminatorPattern without DiscriminatorProperty
DISC003
Error
Invalid discriminator pattern syntax
DISC004
Error
Ambiguous overlapping discriminator patterns
DISC005
Info
Overlapping discriminator pattern resolved
DISC006
Error
Tautological exclusion guard detected
DYNDB — Core Entity Validation
Code
Severity
Title
DYNDB001
Error
Missing partition key
DYNDB002
Error
Multiple partition keys
DYNDB003
Error
Multiple sort keys
DYNDB004
Error
Invalid key format
DYNDB005
Error
Conflicting entity types
DYNDB006
Error
Invalid GSI configuration
DYNDB007
Error
Missing DynamoDbAttribute
DYNDB008
Warning
Ambiguous related entity pattern
DYNDB009
Error
Unsupported property type
DYNDB010
Error
Entity must be partial
DYNDB011
Error
Multi-item entity missing partition key
DYNDB012
Warning
Multi-item entity missing sort key
DYNDB013
Error
Collection property cannot be key
DYNDB014
Warning
Multi-item entity partition key format
DYNDB015
Error
Invalid related entity type
DYNDB016
Warning
Related entities require sort key
DYNDB017
Warning
Conflicting related entity patterns
DYNDB018
Error
Invalid key format syntax
DYNDB019
Warning
Potential key collision
DYNDB020
Error
Circular reference detected
DYNDB021
Warning
Reserved word usage
DYNDB022
Error
Invalid DynamoDB configuration
DYNDB023
Warning
Performance warning
DYNDB024
Error
Missing required attribute
DYNDB025
Warning
Potential data loss
DYNDB026
Error
Invalid GSI projection
DYNDB027
Warning
Scalability warning
DYNDB028
Error
Unsupported type conversion
DYNDB029
Warning
Too many attributes
DYNDB030
Error
Invalid attribute name
DYNDB031
Error
Invalid computed key source
DYNDB032
Error
Invalid extracted key source
DYNDB033
Error
Circular key dependency
DYNDB034
Error
Self-referencing computed key
DYNDB035
Error
Invalid extracted key index
DYNDB036
Warning
Invalid computed key format
DYNDB101
Error
Invalid TTL property type
DYNDB102
Error
Missing JSON serializer package
DYNDB103
Error
Missing blob provider package
DYNDB104
Error
Incompatible attribute combination
DYNDB105
Error
Multiple TTL fields
DYNDB106
Error
Unsupported collection type
DYNDB107
Error
Nested map type missing [DynamoDbEntity]
DYNDB108
Error
S2Level specified without S2 index type
DYNDB109
Error
H3Resolution specified without H3 index type
DYNDB110
Error
GeoHashPrecision specified without GeoHash index type
DYNDB111
Error
Spatial index configuration on non-GeoLocation property
DYNDB112
Warning
Missing Geospatial package
DYNDB113
Warning
Deprecated [Queryable] attribute
DYNDB115
Error
BlobStorage requires BlobData type
DYNDB120
Error
GSI sort key without partition key
DYNDB121
Error
Duplicate GSI partition keys
DYNDB122
Error
Duplicate GSI sort keys
DYNDB123
Error
Duplicate LSI sort keys
DYNDB124
Error
Empty GsiPartitionKey index name
DYNDB125
Error
Empty GsiSortKey index name
DYNDB126
Error
Empty LsiSortKey index name
DYNDB127
Error
GSI/LSI index name conflict
DYNDB1001
Error
Invalid GenerateWrapper usage
DYNDB1002
Error
Invalid extension method
DYNDB1003
Warning
Interface not found
DYNDB1004
Warning
Interface not implemented
FDDB — Table/Index Generation
Code
Severity
Title
FDDB001
Error
No default entity specified
FDDB002
Error
Multiple default entities
FDDB003
Error
Conflicting accessor configuration
FDDB004
Error
Empty entity property name
FDDB005
Warning
Inconsistent discriminator properties
FDDB006
Error
Conflicting table namespaces
FDDB0020
Error
EnableDynamicFields requires partial class
FDDB0021
Warning
DynamicFields property already exists
FDDB050
Error
Conflicting index Name values
FDDB051
Error
Non-partial table type
FDDB052
Warning
Redundant index Name specification
FDDB053
Error
Conflicting index partition key attribute
FDDB054
Error
Conflicting index sort key attribute
FDDB055
Error
Conflicting index type
FDDB060
Error
Projection source entity not found
FDDB061
Error
Projection metadata inheritance failure
FDDB062
Error
Projection interface violation
FDDB070
Warning
Include projection without properties
FDDB072
Warning
KeysOnly with UseProjection
FDDB080
Error
Unresolvable source property in computed key
FDDB090
Error
Format placeholder count mismatch
FDDB100
Error
Key prefix conflicts with explicit computed format
FDDB101
Error
Explicit discriminator pattern conflicts with key format
FDDB102
Warning
Overlapping auto-derived discriminator patterns
FDDB103
Info
Redundant explicit discriminator pattern
FDDB104
Info
Compound discrimination resolved overlap
FDDB110
Warning
Missing schema version attribute
FDDB111
Error
Declared version below minimum supported
FDDB112
Error
Declared version above current
FDDB113
Info
Older-but-supported version, upgrade available
FDDB114
Error
Major version less than 1
FDDB115
Error
Minor version less than 0
FDDB116
Error
Multiple schema version attributes detected
FDDB120
Error
Constant key conflicts with computed attribute
FDDB121
Error
Prefix not applicable to constant key
FDDB122
Error
Cannot extract from constant key
FDDB123
Error
Empty constant key value
FDDB124
Error
Extracted property conflicts with DynamoDbAttribute
FDDB125
Error
Computed key property has redundant Prefix
FDDB126
Error
Key property references non-compile-time-constant value
PROJ — Projection Model Validation
Code
Severity
Title
PROJ001
Error
Projection property not found
PROJ002
Error
Projection property type mismatch
PROJ003
Error
Invalid projection source entity
PROJ004
Error
Projection must be partial
PROJ005
Error
UseProjection references invalid type
PROJ006
Error
Conflicting UseProjection attributes
PROJ101
Warning
Projection includes all properties
PROJ102
Warning
Projection has many properties
SEC — Security and Package Dependencies
Code
Severity
Title
SEC001
Warning
Missing Encryption.Kms package
SEC002
Error
Missing Amazon.Lambda.DynamoDBEvents package