> ## Documentation Index
> Fetch the complete documentation index at: https://site.aspect.build/llms.txt
> Use this file to discover all available pages before exploring further.

# error

`function` **error.type**

<div class="code-block mt-5 mb-8 not-prose rounded-2xl relative group text-gray-950 dark:text-gray-50 codeblock-light border border-gray-950/10 dark:border-white/10 dark:twoslash-dark bg-transparent dark:bg-transparent" numberoflines="10" language="python">
  <div class="w-0 min-w-full max-w-full py-3.5 px-4 h-full dark:bg-codeblock relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out [&_*]:ring-0 [&_*]:outline-none [&_*]:focus:ring-0 [&_*]:focus:outline-none [&_pre>code]:pr-[3rem] [&_pre>code>span.line-highlight]:min-w-[calc(100%+3rem)] [&_pre>code>span.line-diff]:min-w-[calc(100%+3rem)] rounded-2xl bg-white overflow-x-auto scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-black/15 hover:scrollbar-thumb-black/20 active:scrollbar-thumb-black/20 dark:scrollbar-thumb-white/20 dark:hover:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25" data-component-part="code-block-root" tabindex="0">
    <div class="font-mono whitespace-pre leading-6">
      <pre class="shiki shiki-themes github-light-default dark-plus" language="python">
        <code language="python">
          <span class="source python"><span class="meta function python"><span class="storage type function python">def</span> <span class="entity name function python"><span class="meta generic-name python">error</span></span>.<span class="entity name function python"><span class="meta generic-name python">type</span></span></span><span class="meta function parameters python"><span class="punctuation section parameters begin python">(</span></span><span class="meta function parameters python">
          \*<span class="punctuation separator parameters python">,</span>
          <span class="variable parameter python">fields</span></span><span class="meta function parameters annotation python"><span class="punctuation separator annotation parameter python">:</span> <a href="/docs/axl/types/dict">dict</a><span class="meta item-access python"><span class="punctuation section brackets begin python">\[</span></span><span class="meta item-access arguments python"><a href="/docs/axl/types/str">str</a>, <a href="/docs/axl/types/typing">typing</a><span class="punctuation accessor dot python">.</span><a href="/docs/axl/types/typing">Any</a></span><span class="meta item-access python"><span class="punctuation section brackets end python">]</span></span> </span><span class="meta function parameters default-value python"><span class="keyword operator assignment python">=</span> <span class="constant language python">...</span></span><span class="meta function parameters python"><span class="punctuation separator parameters python">,</span>
          <span class="variable parameter python">traceback</span></span><span class="meta function parameters annotation python"><span class="punctuation separator annotation parameter python">:</span> <a href="/docs/axl/types">None</a> <span class="keyword operator arithmetic python">|</span> <a href="/docs/axl/types/bool">bool</a> </span><span class="meta function parameters default-value python"><span class="keyword operator assignment python">=</span> <span class="constant language python">None</span>
          </span><span class="meta function parameters python"><span class="punctuation section parameters end python">)</span></span><span class="meta function python"> </span><span class="meta function annotation return python"><span class="punctuation separator annotation return python">-></span> <span class="meta qualified-name python"><span class="meta generic-name python">error\_type</span></span></span></span>
        </code>
      </pre>
    </div>
  </div>
</div>

Derive a new error type from this one.

The new type inherits every field of this type and adds `fields`.
Its instances are also instances of this type and of each of its
ancestors, for both `isinstance` and type annotations. The name comes
from the variable the type is first assigned to, so declare error types
at module top level.

`fields` maps each field name to a type, or to `attr(type, default = ...)`
for an optional field, as `trait()` does. `message`, `stacktrace` and
`cause` are reserved, and an inherited field cannot be redeclared.

`traceback` decides how an error of this type renders when it escapes
the task. `True` shows the traceback, as for a bug. `False` prints the
message alone as an `ERROR:` line and exits with code 1, as
`ctx.std.process.exit` does: use it for expected refusals. Unset, it is
inherited; the root `error` has `True`.

```starlark theme={null}
DeployError = error.type(fields = {"deployment": str, "attempt": attr(int, default = 1)})
DeployTimeout = DeployError.type(fields = {"after_ms": int})
NotLoggedIn = error.type(traceback = False)
```

`property` **error.cause**

<div class="code-block mt-5 mb-8 not-prose rounded-2xl relative group text-gray-950 dark:text-gray-50 codeblock-light border border-gray-950/10 dark:border-white/10 dark:twoslash-dark bg-transparent dark:bg-transparent" numberoflines="10" language="python">
  <div class="w-0 min-w-full max-w-full py-3.5 px-4 h-full dark:bg-codeblock relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out [&_*]:ring-0 [&_*]:outline-none [&_*]:focus:ring-0 [&_*]:focus:outline-none [&_pre>code]:pr-[3rem] [&_pre>code>span.line-highlight]:min-w-[calc(100%+3rem)] [&_pre>code>span.line-diff]:min-w-[calc(100%+3rem)] rounded-2xl bg-white overflow-x-auto scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-black/15 hover:scrollbar-thumb-black/20 active:scrollbar-thumb-black/20 dark:scrollbar-thumb-white/20 dark:hover:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25" data-component-part="code-block-root" tabindex="0">
    <div class="font-mono whitespace-pre leading-6">
      <pre class="shiki shiki-themes github-light-default dark-plus" language="python">
        <code language="python">
          <span class="source python"><span class="meta qualified-name python"><span class="meta generic-name python">error</span><span class="punctuation accessor dot python">.</span><span class="meta generic-name python">cause</span></span><span class="punctuation separator annotation variable python">:</span> <a href="/docs/axl/types/typing">typing</a><span class="punctuation accessor dot python">.</span><a href="/docs/axl/types/typing">Any</a></span>
        </code>
      </pre>
    </div>
  </div>
</div>

The error that led to this one, or `None`.

`property` **error.message**

<div class="code-block mt-5 mb-8 not-prose rounded-2xl relative group text-gray-950 dark:text-gray-50 codeblock-light border border-gray-950/10 dark:border-white/10 dark:twoslash-dark bg-transparent dark:bg-transparent" numberoflines="10" language="python">
  <div class="w-0 min-w-full max-w-full py-3.5 px-4 h-full dark:bg-codeblock relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out [&_*]:ring-0 [&_*]:outline-none [&_*]:focus:ring-0 [&_*]:focus:outline-none [&_pre>code]:pr-[3rem] [&_pre>code>span.line-highlight]:min-w-[calc(100%+3rem)] [&_pre>code>span.line-diff]:min-w-[calc(100%+3rem)] rounded-2xl bg-white overflow-x-auto scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-black/15 hover:scrollbar-thumb-black/20 active:scrollbar-thumb-black/20 dark:scrollbar-thumb-white/20 dark:hover:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25" data-component-part="code-block-root" tabindex="0">
    <div class="font-mono whitespace-pre leading-6">
      <pre class="shiki shiki-themes github-light-default dark-plus" language="python">
        <code language="python">
          <span class="source python"><span class="meta qualified-name python"><span class="meta generic-name python">error</span><span class="punctuation accessor dot python">.</span><span class="meta generic-name python">message</span></span><span class="punctuation separator annotation variable python">:</span> <a href="/docs/axl/types/str">str</a></span>
        </code>
      </pre>
    </div>
  </div>
</div>

What went wrong, as given to the constructor. `str(e)` returns it too.

`property` **error.stacktrace**

<div class="code-block mt-5 mb-8 not-prose rounded-2xl relative group text-gray-950 dark:text-gray-50 codeblock-light border border-gray-950/10 dark:border-white/10 dark:twoslash-dark bg-transparent dark:bg-transparent" numberoflines="10" language="python">
  <div class="w-0 min-w-full max-w-full py-3.5 px-4 h-full dark:bg-codeblock relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out [&_*]:ring-0 [&_*]:outline-none [&_*]:focus:ring-0 [&_*]:focus:outline-none [&_pre>code]:pr-[3rem] [&_pre>code>span.line-highlight]:min-w-[calc(100%+3rem)] [&_pre>code>span.line-diff]:min-w-[calc(100%+3rem)] rounded-2xl bg-white overflow-x-auto scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-black/15 hover:scrollbar-thumb-black/20 active:scrollbar-thumb-black/20 dark:scrollbar-thumb-white/20 dark:hover:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25" data-component-part="code-block-root" tabindex="0">
    <div class="font-mono whitespace-pre leading-6">
      <pre class="shiki shiki-themes github-light-default dark-plus" language="python">
        <code language="python">
          <span class="source python"><span class="meta qualified-name python"><span class="meta generic-name python">error</span><span class="punctuation accessor dot python">.</span><span class="meta generic-name python">stacktrace</span></span><span class="punctuation separator annotation variable python">:</span> <a href="/docs/axl/types/typing">typing</a><span class="punctuation accessor dot python">.</span><a href="/docs/axl/types/typing">Any</a></span>
        </code>
      </pre>
    </div>
  </div>
</div>

Where the error was constructed, as a list of frames, outermost call first. For an error the runtime built from a failed operation, it is where that failure reached AXL, e.g. the `future.block()` call.
