New checks in Neos 3.2
The checks a cluster can newly fail on when it moves to Neos 3.2. See New checks by version for how to read this page and what it leaves out. The checks of the features new in 3.2 are on their own page.
Generation
| Code | Message | Level | Fix |
|---|---|---|---|
M0078 |
The UI view property {0} of the UI view {1} cannot have both DataType and DotNetDataType set. |
Warning | Keep only one of DataType and DotNetDataType. |
M0079 |
The UI view property {0} of the UI view {1} uses DotNetDataType; DatagridVisible, Filterable, FilterVisible and FilterVisibleInPanel have no effect and must not be enabled. |
Warning | Set these four properties to false. |
M0080 |
The theme component attribute {0} of component {1} in theme {2} has IsCustom set to true, but its value "{3}" matches an existing palette token name; ... |
Warning | Set IsCustom to false to use the token, or change the value. |
M0081 |
The entity view {0} has a reference property "{1}" and a separate scalar property "{2}" that both map to the same association's foreign key column "{3}". ... |
Warning | Keep either the reference property or the scalar foreign key property. |
M0083 |
The entity view property "{0}" of entity view {1} has RelatedEntityViewName set, but its Type is "{2}" (neither Reference nor Collection). ... |
Warning | Remove RelatedEntityViewName, or change Type to Reference or Collection. |
M0084 |
Route collision detected: entity views '{0}' each expose a {1} route resolving to the same path '{2}'. ... — {0} lists the entity views, as in 'A' and 'B' |
Warning | Rename the RootRoute, or declare a distinct explicit route on one of the entity views. |
M0085 |
The table {0} is not referenced by any entity. Consider deleting it if it is no longer used. |
Warning | Delete the unused data table, or map an entity to it. |
M0086 |
The Title of UI view "{0}" is the plain string "{1}", which looks like a malformed resource reference. ... |
Warning | Resolve the resource with a code expression, as the message shows. |
M0090 |
{0} references {1}, which is Internal to module {2} and has not granted access to this module. |
Warning | Grant access with InternalAccessGrantedTo, or make the type Public — see Generation message level configuration. |
M0091 |
{0} references {1}, whose module {2} is not declared as a ModuleAssociation dependency of {3}. |
Warning | Declare the missing ModuleAssociation — see Module dependencies. |
| — | Entity view '{0}' declares an exposed route with an empty path. |
Error | Give the route a path. |
| — | Entity view '{0}' declares several exposed routes of type '{1}' with the same path '{2}'. |
Error | Give each route a distinct path. |
| — | Entity view '{0}' declares an exposed route '{1}' that contains a placeholder that does not match any key property, "{rootRoute}", "{fileName}", or "{$keys}". |
Error | Fix the placeholder, or remove the custom route. |
| — | Entity view '{0}': route '{1}' is on the technical route path but carries obsolescence or API-surface options (Obsolete, Display in API explorer, or Internal use only). ... |
Error | Move these options to an additional route with a distinct path. |
| — | Entity view '{0}': route '{1}' is on the technical route path, is not exposed (ExposedAsApi = false), and carries documentation. ... |
Error | Expose the route, remove its documentation, or move it to an additional route with a distinct path. |
| — | Server method '{0}' declares an exposed route with an empty path. |
Error | Give the route a path. |
| — | Server method '{0}' declares several exposed routes with HTTP method '{1}' and the same path '{2}'. |
Error | Give each route a distinct path. |
| — | Several server methods declare an exposed route with HTTP method '{0}' and the same path '{1}': {2}. |
Error | Give the routes of these server methods distinct paths. |
| — | Server method '{0}' binds parameter '{1}' from the route, but the route '{2}' does not contain the matching placeholder. |
Error | Add the placeholder to the route, or bind the parameter from elsewhere. |
| — | DataType is required when Type is Expression. |
Error | Set DataType on the property of type Expression. |
| — | The "{0}" icon is not declared. Add an Image metadata named "{0}" ... |
Error | Declare an Image metadata with that name (with StandardImageName for a standard icon). |
| — | AI embeddings model '{0}' for database does not support embeddings capability. |
Error | Configure a model that supports embeddings. |
| — | The property expression of '{0}' must be a simple member access such as 'x => x.MyProperty'. |
Error | Use a simple member access lambda. |
| — | {1} '{0}' is not supported. You should use an alternative. — now also on an object creation that used to be dropped silently |
Error | Replace the construct with a supported one. |
M0077 (The {0} property of the UI view {1} is declared as sortable (Sortable property), but it cannot be ...) also appears in 3.2. It is an Information message by default, so it only shows when a cluster or a pipeline raises it: set Sortable to false, or use a filterable and sortable scalar source.
UI templates
| Code | Message | Level | Fix |
|---|---|---|---|
| — | The "{0}" value of the {1} on the "{2}" element is invalid because it seems that the property does not exist. with a @DatasourceCurrent.X or @Item.X value, in an attribute or in element content ({1} is then content) of a UI view template. Up to 3.1, only @Properties.X values were checked. |
Error | Fix the property name, or add the property to the UI view or to the entity view of the context (for @Item.X, the entity view of the datagrid or list items). |
M0058 |
The "{0}" value of the {1} on the "{2}" element uses the C# accessor form. In a template, reference a resource with @Resources.Module.Name instead. |
Warning | Write @Resources.Module.Name. |
M0058 |
The "{0}" value of the {1} on the "{2}" element references a resource that belongs to a module this template's module does not depend on. |
Warning | Add the ModuleAssociation, or reference an element of a module already associated — see Module dependencies. |
M0058 |
The "{0}" value of the "{1}" attribute on the "{2}" element references a {kind} that belongs to a module this template's module does not depend on. — {kind} is lookup, UI view or menu |
Warning | Add the ModuleAssociation, or reference an element of a module already associated — see Module dependencies. |
| — | The "{0}" value of the {1} on the "{2}" element references a resource that is Internal and not accessible from this template's module. |
Error | Grant access with InternalAccessGrantedTo, or make the element Public — see Module accessibility. |
| — | The "{0}" value of the "{1}" attribute on the "{2}" element references a {kind} that is Internal and not accessible from this template's module. — {kind} is lookup, UI view or menu |
Error | Grant access with InternalAccessGrantedTo, or make the element Public — see Module accessibility. |
M0058 |
The "{0}" value of the "{1}" attribute on the "{2}" element references an image that belongs to a module this template's module does not depend on. |
Warning | Add the ModuleAssociation, or use an image of a module already associated. |
| — | The "{0}" value of the "{1}" attribute on the "{2}" element references an image that is Internal and not accessible from this template's module. |
Error | Grant access with InternalAccessGrantedTo, or make the image Public. |
| — | The element "{0}" belongs to module "{1}", which is Internal and has not granted access to this module. |
Error | Grant access to the UI component's module, or make the component Public. |
M0058 |
The "{0}" value of the "{1}" attribute on the "{2}" element is invalid because it seems that the image does not exist. |
Warning | Declare the Image metadata, or fix its name. |
M0058 |
The "{0}" value of the "{1}" attribute on the "{2}" element is invalid because it seems that the menu does not exist. |
Warning | Fix the menu name. |
| — | The "{0}" element is unexpected, it will be ignored. — context, form-field or ui-view in a UI component template |
Error | Remove the element, or move that markup into a UI view. |
M0058 |
The "{0}" attribute on the "{1}" element will be ignored. — now for disabled and loading on a button of type action |
Warning | Remove these attributes from the action button. |
M0075 |
Directive(s) "{0}" on the "{1}" UI component ... (worded have no effect because... in 3.2, do not apply to a single element because... from 3.3) |
Warning | Wrap the template content of the UI component in a single root element. |
M0076 |
A virtual repeat inside a grid layout ignores the grid gap: its items are not spaced by the grid. Set virtual="false" or wrap the items in a layout with spacing. |
Warning | Set virtual="false", or wrap the items in a layout with spacing. |
Metadata check
| Code | Message | Level | Fix |
|---|---|---|---|
N108 |
The element of type "{0}" with the key {1} in the module "{2}" cannot reference the Internal element of type "{3}" with the key {4} in the module "{5}" without an explicit InternalAccessGrantedTo grant. ... |
Error | Grant access with InternalAccessGrantedTo, or make the element Public — see Module accessibility. |
| — | {0} - Accessibility is set to 'Internal' but {1} does not support this property. |
Error | Remove Accessibility: Internal from this element. |
Analyzers
| Code | Message | Level | Fix |
|---|---|---|---|
NEOS0001 |
'{0}' belongs to module '{1}', which is not associated with your module |
Warning | Declare the missing ModuleAssociation — see Analyzers. |
NEOS0002 |
'{0}' belongs to the {1} layer of module '{2}', which this project cannot reach |
Warning | Use the symbol from a layer that can reach it. |
NEOS0003 |
'{0}' belongs to module '{1}', which marks it Internal and has not granted your module access |
Warning | Grant access with InternalAccessGrantedTo, or make the element Public. |
NEOS0004 |
The return value of '{0}' must be used |
Warning | Check the returned result, for example the result of SaveAsync. |
NEOS0005 |
'{0}' uses the cluster's namespace shortcut, which is unstable if this module is reused elsewhere; use '{1}' instead |
Warning | Use the resource class of the owning module, as the message says. |