# AUR4103

## Error Message

`AUR4103: Serializing a non-string displayName for rule property is not supported. Given: {{value}}`

## Description

This error occurs when validation rule serialization encounters a `displayName` value that is not a string. Only string `displayName` values are supported for serialization.

## Common Scenarios

```ts
import { ValidationRules } from '@aurelia/validation';

class Model {
  public name = '';
}

// ❌ Non-string displayName
ValidationRules
  .ensure((x: Model) => x.name)
  .displayName({ text: 'Name' } as any)
  .required()
  .on(Model);
```

## Solution

* Ensure `displayName` is a string when rules need to be serialized.

```ts
import { ValidationRules } from '@aurelia/validation';

class Model {
  public name = '';
}

// ✅ String displayName
ValidationRules
  .ensure((x: Model) => x.name)
  .displayName('Name')
  .required()
  .on(Model);
```

## Troubleshooting

* If you rely on dynamic/localized display names, apply them at runtime (after hydration) rather than serializing them.
* Inspect the error’s `{{value}}` to find which rule property had an unsupported `displayName`.
