#### [Abblix\.Oidc\.Server](https://www.abblix.com/en/docs/api/abblix-oidc-server 'index')
### [Abblix\.Oidc\.Server\.Features\.DPoP](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.DPoP 'Abblix\.Oidc\.Server\.Features\.DPoP')

## ProofErrorReasons Class

Stable, machine\-friendly reason tokens that [Abblix\.Oidc\.Server\.Features\.DPoP\.ProofValidator](https://learn.microsoft.com/en-us/dotnet/api/abblix.oidc.server.features.dpop.proofvalidator 'Abblix\.Oidc\.Server\.Features\.DPoP\.ProofValidator') assigns to
[Reason](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.DPoP.ProofError#Abblix.Oidc.Server.Features.DPoP.ProofError.Reason 'Abblix\.Oidc\.Server\.Features\.DPoP\.ProofError\.Reason') for log filters and metric labels\. These are the
internal fine\-grained failure categories; the OAuth\-protocol\-level error code surfaced
to clients is always `invalid_dpop_proof` \(or `use_dpop_nonce` for the
nonce\-required path\) regardless of which of these matched\.

```csharp
public static class ProofErrorReasons
```

Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → ProofErrorReasons
### Fields

## ProofErrorReasons\.AccessTokenHashMismatch Field {#Abblix.Oidc.Server.Features.DPoP.ProofErrorReasons.AccessTokenHashMismatch}

Payload `ath` does not match `Base64Url(SHA-256(access_token))`\.

```csharp
public const string AccessTokenHashMismatch = "ath_mismatch";
```

#### Field Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## ProofErrorReasons\.AccessTokenHashMissing Field {#Abblix.Oidc.Server.Features.DPoP.ProofErrorReasons.AccessTokenHashMissing}

Payload `ath` claim is required \(an access token is presented\) but missing\.

```csharp
public const string AccessTokenHashMissing = "ath_missing";
```

#### Field Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## ProofErrorReasons\.HttpMethodMismatch Field {#Abblix.Oidc.Server.Features.DPoP.ProofErrorReasons.HttpMethodMismatch}

Payload `htm` does not match the request method\.

```csharp
public const string HttpMethodMismatch = "htm_mismatch";
```

#### Field Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## ProofErrorReasons\.HttpUriInvalid Field {#Abblix.Oidc.Server.Features.DPoP.ProofErrorReasons.HttpUriInvalid}

Payload `htu` is not a valid absolute URI\.

```csharp
public const string HttpUriInvalid = "htu_invalid";
```

#### Field Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## ProofErrorReasons\.HttpUriMismatch Field {#Abblix.Oidc.Server.Features.DPoP.ProofErrorReasons.HttpUriMismatch}

Payload `htu` does not match the request URI after RFC 3986 §6\.2 canonicalisation\.

```csharp
public const string HttpUriMismatch = "htu_mismatch";
```

#### Field Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## ProofErrorReasons\.HttpUriMissing Field {#Abblix.Oidc.Server.Features.DPoP.ProofErrorReasons.HttpUriMissing}

Payload `htu` claim is missing\.

```csharp
public const string HttpUriMissing = "htu_missing";
```

#### Field Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## ProofErrorReasons\.InvalidAlgorithm Field {#Abblix.Oidc.Server.Features.DPoP.ProofErrorReasons.InvalidAlgorithm}

Header `alg` is missing, not asymmetric, or not in the configured whitelist\.

```csharp
public const string InvalidAlgorithm = "invalid_alg";
```

#### Field Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## ProofErrorReasons\.InvalidJwk Field {#Abblix.Oidc.Server.Features.DPoP.ProofErrorReasons.InvalidJwk}

Header `jwk` is missing, malformed, or contains private\-key material\.

```csharp
public const string InvalidJwk = "invalid_jwk";
```

#### Field Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## ProofErrorReasons\.InvalidTokenType Field {#Abblix.Oidc.Server.Features.DPoP.ProofErrorReasons.InvalidTokenType}

Header `typ` is not `dpop+jwt`\.

```csharp
public const string InvalidTokenType = "invalid_typ";
```

#### Field Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## ProofErrorReasons\.IssuedAtInvalid Field {#Abblix.Oidc.Server.Features.DPoP.ProofErrorReasons.IssuedAtInvalid}

Payload `iat` is not a Unix\-time numeric\.

```csharp
public const string IssuedAtInvalid = "iat_invalid";
```

#### Field Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## ProofErrorReasons\.IssuedAtMissing Field {#Abblix.Oidc.Server.Features.DPoP.ProofErrorReasons.IssuedAtMissing}

Payload `iat` claim is missing\.

```csharp
public const string IssuedAtMissing = "iat_missing";
```

#### Field Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## ProofErrorReasons\.IssuedAtOutOfWindow Field {#Abblix.Oidc.Server.Features.DPoP.ProofErrorReasons.IssuedAtOutOfWindow}

Payload `iat` falls outside the configured tolerance window around the current time\.

```csharp
public const string IssuedAtOutOfWindow = "iat_out_of_window";
```

#### Field Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## ProofErrorReasons\.JwtIdMissing Field {#Abblix.Oidc.Server.Features.DPoP.ProofErrorReasons.JwtIdMissing}

Payload `jti` claim is missing\.

```csharp
public const string JwtIdMissing = "jti_missing";
```

#### Field Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## ProofErrorReasons\.MalformedJwt Field {#Abblix.Oidc.Server.Features.DPoP.ProofErrorReasons.MalformedJwt}

JWS compact form is not three dot\-separated segments, base64url\-decode failed,
            or the header/payload is not a JSON object\.

```csharp
public const string MalformedJwt = "malformed_jwt";
```

#### Field Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## ProofErrorReasons\.ReplayDetected Field {#Abblix.Oidc.Server.Features.DPoP.ProofErrorReasons.ReplayDetected}

Payload `jti` has already been used within the acceptance window\.

```csharp
public const string ReplayDetected = "replay_detected";
```

#### Field Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## ProofErrorReasons\.SignatureInvalid Field {#Abblix.Oidc.Server.Features.DPoP.ProofErrorReasons.SignatureInvalid}

JWS signature does not verify under the embedded `jwk`\.

```csharp
public const string SignatureInvalid = "signature_invalid";
```

#### Field Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
