---
title: "DF0038: Invalid JSON-Render Element Props"
description: "JSON-render view \"{id}\" received invalid props on element \"{key}\": {issues}"
canonical_url: "https://devfra.me/errors/df0038"
---
# DF0038: Invalid JSON-Render Element Props

> JSON-render view "\{id}" received invalid props on element "\{key}": \{issues}

## Message

> JSON-render view "`{id}`" received invalid props on element "`{key}`": `{issues}`

## Cause

`@devframes/json-render` validates every element's props against the base catalog's per-component schema at spec ingress (`createJsonRenderView` / `view.update`). An element whose props don't match its component's schema is rejected here.

## Example

```ts
createJsonRenderView(ctx, {
  id: 'toolbar',
  /** ✗ throws DF0038: `variant` is not a Button variant */
  spec: {
    root: 'a',
    elements: {
      a: {
        type: 'Button',
        props: { variant: 'nope' },
        children: []
      }
    }
  },
})
```

## Fix

Match the element props to the base catalog's prop schema for that component. Dynamic `$state` / `$bindState` expressions are accepted wherever a scalar prop is expected.

## Source

- [`packages/json-render/src/node/create-view.ts`](https://github.com/devframes/devframe/blob/main/packages/json-render/src/node/create-view.ts): `validateElementProps()` throws this at ingress and on `update`.


## Sitemap

See the full [sitemap](https://devfra.me/sitemap.md) for all pages.
