fi-0111: Inline size exceeds limit {:#fi-0111}

FIDL types whose inline size is 64 KiB or more are not allowed:

{% include “docs/reference/fidl/language/error-catalog/label/_bad.md” %}

{% includecode gerrit_repo="fuchsia/fuchsia" gerrit_path="tools/fidl/fidlc/tests/fidl/bad/fi-0111.test.fidl" exclude_regexp="\/\/ (Copyright 20|Use of|found in).*" %}

Instead, make sure the type has an inline size less than 64 KiB. In this case, we can adjust the array bound:

{% include “docs/reference/fidl/language/error-catalog/label/_good.md” %}

{% includecode gerrit_repo="fuchsia/fuchsia" gerrit_path="tools/fidl/fidlc/tests/fidl/good/fi-0111.test.fidl" exclude_regexp="\/\/ (Copyright 20|Use of|found in).*" %}

This limit exists for performance reasons. It means that encoders and decoders can assume sizes and offsets fit in unsigned 16 bit integers.

You are unlikely to run into this in practice unless you use large arrays or deeply nested structs. Most FIDL constructs (such as strings, vectors, tables, and unions) use out-of-line storage, which does not count towards their individual inline size.