Table of Contents

Checks of features new in Neos 3.3

The checks of the metadata properties, components, attributes and directives that Neos 3.3 introduces: a cluster meets them once it starts using one of these features. See New checks by version for how to read this page, and New checks in Neos 3.3 for the checks an existing cluster can meet.

Dead letter topic of a server method

Code Message Level Fix
M0100 Server method {0} uses its subscribed event "{1}" as dead letter topic, ... Error Give PubSubDeadLetterEventName a topic other than the subscribed event — see Publish and subscribe.
— Inconsistent properties detected for server methods subscribing to event '{0}': followed by Server methods {0} all define a PubSubDeadLetterEventName ... Error Set PubSubDeadLetterEventName on only one of the server methods subscribing to the event.

Property masking

The masking options of entity, entity view and UI view properties (MaskingType, MaskingVisiblePrefixLength, MaskingVisibleSuffixLength, MaskingRegularExpression, MaskingCharacter), checked by neos generate. An entity view or UI view property is only checked for the options it declares itself. A key is also checked on a derived entity that makes an inherited masked property one of its keys.

Code Message Level Fix
— The property "{0}" cannot be masked: only String properties can be masked. Error Remove the masking type, or mask a String property.
— The visible prefix and suffix lengths of the property "{0}" are only allowed with the Partial masking type. Error Remove MaskingVisiblePrefixLength and MaskingVisibleSuffixLength, or use the Partial masking type.
— The visible prefix and suffix lengths of the property "{0}" cannot be negative. Error Set MaskingVisiblePrefixLength and MaskingVisibleSuffixLength to 0 or more.
— The visible parts regular expression of the property "{0}" is only allowed with the Regex masking type. Error Remove MaskingRegularExpression, or use the Regex masking type.
— The visible parts regular expression of the property "{0}" is invalid: {1} Error Set or fix MaskingRegularExpression as {1} says. Back-references, lookarounds and atomic groups are not supported.
— The masking character of the property "{0}" is only allowed with a masking type. Error Remove MaskingCharacter, or set a masking type.
— The masking character '{1}' of the property "{0}" is invalid: it must be a punctuation mark or a symbol, such as * or #. Error Use a punctuation mark or a symbol, such as * or #.
— The masking character '{1}' of the property "{0}" is a separator of the {2} masking type: choose another character, such as * or #. Error Use a character that the format does not use as separator, such as * or #.
— The key property "{0}" cannot be masked: keys appear in addresses, references and error messages. Error Remove the masking type of the key property.
— The property "{0}" is part of the alternate key "{1}" and cannot be masked: alternate keys appear in addresses, references and error messages. Error Remove the masking type, or the property from the alternate key.
M0102 The property "{0}" is masked but not encrypted: the mask only hides the value in the responses, the value stays readable in the database. ... Warning Set IsEncrypted, or lower M0102.
— The default grouping of the UI view "{1}" leaves out the property "{0}": its value or the label of its lookup is masked. Warning Remove the property from DefaultGrouping.
— The {2} summary of the property "{0}" of the UI view "{1}" is left out: it would aggregate a masked value. Warning Remove the summary, or use the Count summary type.
— The "{0}" element cannot edit the masked property "{1}": only a textbox without type or a form-field replaces its value as a whole. Error Bind the property to a textbox without type, or to a form-field.

Partial template slots

The slots of UI view templates (<partial-template-slot /> node, partial template type SlotContribution, Slot and Order properties), checked by neos generate.

Code Message Level Fix
— The partial template "{0}" of the UIView "{1}" is a slot contribution but does not define its slot. Error Set Slot on the contribution, or set its type to Standard.
— The partial template "{0}" of the UIView "{1}" contributes to the slot "{2}", whose name is not in PascalCase. Error Rename the slot in PascalCase.
— The partial template "{0}" of the UIView "{1}" is a standard partial template but defines the slot "{2}". ... Error Set its type to SlotContribution, or remove Slot.
— The partial template "{0}" of the UIView "{1}" is a standard partial template but defines the order {2}. ... Error Remove Order, or set the type to SlotContribution.
— The partial template "{0}" contributes to the slot "{1}", which no template of the UI view "{2}" declares. Error Declare the slot with a <partial-template-slot name="{1}" /> node in the UI view, or fix the slot name.
— The slot "{0}" is declared more than once in the UI view "{1}". Error Keep a single <partial-template-slot /> node per slot name.
— The slot "{0}" cannot be declared in the partial template "{1}", which itself contributes to a slot. Error Declare the slot in the UI view template or in a standard partial template.
— The slot "{0}" cannot be declared inside a repeat. Error Move the node out of the repeat.
— The "{0}" value of the "{1}" attribute on the "{2}" element is invalid because the name of a slot must be in PascalCase. Error Rename the slot in PascalCase.
— The "{0}" element is unexpected, it will be ignored. — partial-template-slot in a UI component template Error Declare the slot in a UI view template.
— The "{0}" partial template is a slot contribution: only its slot can insert it, not its name. ... — a partial-template node naming it Error Remove the partial-template node, or set the type of the partial template to Standard.

Style classes

Code Message Level Fix
— Invalid CSS in {0}: {1} — {1} gives the cause, such as unbalanced brackets, a missing .{class} rule or !important Error Fix the CSS of the Css target as the second part of the message says.
— The name of the style class '{0}' is invalid: it must be in PascalCase, i.e. start with an uppercase letter and contain only letters and digits. Error Rename the style class in PascalCase: its CSS class is the kebab-case form of its name.
— The CSS class '{1}' of the style class '{0}' is also the CSS class of the style class '{2}': ... Error Rename one of the style classes, so that their names give different CSS classes (UIView and UiView both give ui-view).
— The name "{0}" is invalid: its CSS class "{1}" is reserved for the framework ... Error Rename the style class, so that its CSS class is not neos and does not start with neos- or wj-.
— A style class must have at least one target. Error Add a target to the style class, a Css target for example.
— The Neos target of {0} cannot be combined with another target. Error Keep the Neos target alone, or remove it.
— Invalid Neos target in {0}: {1} — {1} gives the cause, such as a directive or a value that is not allowed Error Fix the directive as the second part of the message says.
— The Neos target of {0} must have at least one directive. Error Add a directive to the Neos target, or remove it.
M0109 The color {0} of the directive {1} of {2} is not defined by the themes {3}. ... Warning Define the color in the listed themes, or use a color that every enabled theme of the cluster has. A theme that overrides the directive in its own Neos target is checked against the color of its override instead.
M0108 The color {0} of the directive {1} of {2} is a deprecated standard color: use {3} instead. Warning Use the color given by the message.
— The CSS target of {0} must have exactly one value, named '{1}'. Error Give the Css target a single value with the name the message gives.
— The content of the target is required. Error Write the CSS of the Css target in its content value.
— The theme '{0}' overrides the style class '{1}', which does not exist. Error Fix the style class name, or remove the override from the theme.
— The theme '{0}' overrides the style class '{1}' of the module '{2}', which is not a dependency of the module '{3}'. Error Add the ModuleAssociation to the module of the style class.
— The theme '{0}' overrides the style class '{1}', which is internal to the module '{2}' and cannot be overridden from the module '{3}'. Error Grant access with InternalAccessGrantedTo, or make the style class Public.
— The theme '{0}' overrides the {2} target of the style class '{1}', which does not define this target. Error Add this target to the style class, or remove the override.

Style classes in UI templates

The style:classes directive applies style classes to an element: each class name written in its value is checked.

Code Message Level Fix
M0058 The "{0}" class of the "{1}" attribute on the "{2}" element is invalid because it seems that the style class does not exist. ... Warning Fix the class name: the kebab-case form of the name of the style class (FeaturedCard gives featured-card).
M0058 The "{0}" class of the "{1}" attribute on the "{2}" element references a style class that belongs to a module this template's module does not depend on. Warning Add the ModuleAssociation to the module of the style class.
— The "{0}" class of the "{1}" attribute on the "{2}" element references a style class that is Internal and not accessible from this template's module. Error Grant access with InternalAccessGrantedTo, or make the style class Public.

Constants in UI templates

Code Message Level Fix
— The "{0}" value of the {1} on the "{2}" element is invalid because it seems that the constant does not exist. Error Fix the @Constants.Class.Name reference — see Constants.
— The "{0}" value of the {1} on the "{2}" element references a constant whose .NET data type is not a supported primitive type ... Error Reference a constant of a primitive type.
— The "{0}" value of the {1} on the "{2}" element references a constant whose constants static class has a Backend scope: ... Error Change the Scope of the constants static class, or stop using it in the template.
— The "{0}" value of the {1} on the "{2}" element references a constant whose value uses a C# syntax form that is not supported in a UI template ... Error Write the value of the constant as a plain literal.
M0058 The "{0}" value of the {1} on the "{2}" element references a constant that belongs to a module this template's module does not depend on. Warning Add the ModuleAssociation, or reference a constant of a module already associated.
— The "{0}" value of the {1} on the "{2}" element references a constant that is Internal and not accessible from this template's module. Error Grant access with InternalAccessGrantedTo, or make the constants static class Public.

Components and directives

Code Message Level Fix
— The "{0}" value of the {1} on the "{2}" element is invalid because the referenced method must not be asynchronous. — customize-method-name Error Make the customize method synchronous — see Button.
— The "threshold" attribute on the "{0}" element requires the "viewport" attribute to be set to a real breakpoint tier ... Error Set a viewport other than extrasmall, or remove threshold — see Grid layout.
— The "{0}" and "{1}" directives can't be used together on the "{2}" element. — layout:rendered-size and event:resize, canvas:* and layout:align-self-* Error Keep only one of the two directives.
— The value of the {0} on the "{1}" element must be bound. — layout:rendered-size Error Bind layout:rendered-size to a settable field or property.
M0058 The "{0}" attribute on the "{1}" element is unexpected, it will be ignored. — a canvas:* directive outside a canvas-layout Warning Remove the directive, or place the element directly in a canvas-layout.
— The value of the "{0}" attribute on the "{1}" element must be bound, or a number (px) optionally followed by "%". Error Give a number, optionally followed by % — see Canvas directives.
— The "{0}" directive on the "{1}" element cannot be used with {2}: in a canvas-layout, the size of a stretched axis is given by ... Error Remove layout:width or layout:height on the stretched axis.
— A "repeat" element with the "virtual" attribute cannot be placed in a "canvas-layout" element: ... Error Remove virtual from the repeat — see Canvas layout.
— The value of the "{0}" attribute on the "{1}" element is not in the enumeration ({2}). — align-horizontal and align-vertical of canvas-layout Error Use one of the values listed in the message.
— Same as above — layout:align-self-horizontal="space-between" on a canvas-layout child Error Use one of the values listed in the message.
— Same as above — bar-style of splitter, style:border-style, style:overflow, style:text-transform, style:user-select Error Use one of the values listed in the message.
M0058 Handle attributes only apply when the "bar-style" attribute is "handle". The "{0}" attribute on the "{1}" element will be ignored. Warning Set bar-style="handle" or remove the handle attributes — see Splitter.
— The value of the "{0}" attribute on the "{1}" element must be bound, or one to four numbers separated by spaces, ... — style:border-width, style:hover-border-width Error Give one to four non-negative numbers.
— The value of the "{0}" attribute on the "{1}" element must be bound or a decimal number (e.g. "0.6"). — style:font-scale, style:scale, style:hover-scale Error Give a non-negative decimal number.
— The value of the "{0}" attribute on the "{1}" element must be bound or a decimal number between 0 and 1 (e.g. "0.6"). — style:opacity, style:hover-opacity Error Give a number between 0 and 1.
— The value of the "{0}" attribute ... must be a number. — style:rotate*, style:shadow-offset-*, style:shadow-spread and their hover- forms, style:letter-spacing Error Give a unitless number.
— The value of the "{0}" attribute on the "{1}" element must be bound or a non-negative number. — style:shadow-blur, style:hover-shadow-blur, transition:duration Error Give a unitless number of at least 0.
— The value of the "{0}" attribute on the "{1}" element must be bound or two numbers separated by a space, ... — style:translate Error Give two numbers, each optionally followed by % — see Style directives.
— The value of the "{0}" attribute on the "{1}" element is not in the enumeration ({2}). — side or align of a popover Error Give one of the listed values — see Popover.
— The value of the "{0}" attribute on the "{1}" element must be an integer. — side-offset or arrow-size of a popover, track-thickness, track-border-width, thumb-size or thumb-border-width of an input-slider-discrete Error Give a whole number of pixels, or a bound value — see Popover and Input slider discrete.
— The value of the {0} on the "{1}" element must be a boolean. — show-arrow of a popover or show-markers of an input-slider-discrete Error Give true, false or a bound value — see Popover and Input slider discrete.
— The value of the "{0}" attribute on the "{1}" element must be an integer greater than or equal to {2}. — track-thickness and thumb-size (at least 1), track-border-width and thumb-border-width (at least 0) of an input-slider-discrete Error Give a whole number of pixels within the minimum, or a bound value — see Input slider discrete.

Additional data

The AllowAdditionalData entity option and the AdditionalData:StorageMode configuration key, checked by neos generate.

Code Message Level Fix
— The additional data storage mode '{0}' is invalid. Expected values are 'Json' or 'Eav' (configuration key 'AdditionalData:StorageMode'). Error Set AdditionalData:StorageMode to Json or Eav.
— The entity '{0}' already defines a property named '{1}', which is reserved for the storage of additional data in Json storage mode. ... Error Rename the property, or use the Eav storage mode.
— The entity view '{0}' already defines a property named '{1}', which is reserved for the additional data (custom fields) of its entity. ... Error Rename the property of the view.
— The table '{0}' already defines a column named '{1}', which is reserved for the storage of additional data. Error Rename the column.
— The entity '{0}' enables additional data, which the YAML persistence does not support: the values would not be stored. Use a database persistence. Error Use a database persistence, or remove AllowAdditionalData from the entity.
— The entity '{0}' inherits from '{1}' a property named '{2}', which is reserved for the storage of additional data in Json storage mode. ... Error Rename the inherited property, or use the Eav storage mode.
— The entity '{0}' and its base entity '{1}' both enable additional data. Enable it on one of them only. Error Keep AllowAdditionalData on the base entity or on the derived entity, not on both.
— The entity view '{0}' enables additional data, but the OData queries on its additional data fields ($filter, $orderby) cannot be generated: {1} Error In Eav storage mode, give the entity an integer or text primary key. In Json storage mode, map the key properties of the view to scalar properties of the entity. Otherwise, remove AllowAdditionalData from the entity.