Skip to main content

Breaking changes – version 21.22


Below are the changes that require action when upgrading to version 21.22. For the full list of new features see: Release - version 21.22.

Component upgrade order​

What changes. Workflows, forms, lists and models are stored in a compact form: without type names in formula constants, dictionary values, conditions, constant list indexes and function argument lists. Content saved earlier can still be loaded and takes the new form at the next save. No migration is needed.

Who is affected. Environments in which servers, hosts and Studio are not upgraded at the same time.

What to do. Upgrade all servers, hosts and Studio instances that read version content before you start saving content in the new version. A version from before these changes does not read content saved by the new version correctly:

  • it reads version identifiers as empty and saves them back empty, and reads constant values as 0 or false,
  • it does not load at all a workflow, form, list or model that contains a formula constant, a dictionary value, a condition, a constant list index or a function with an argument list (the error concerns the whole element).

For more information see: Compact content storage.

SQL Server connections without MARS​

What changes. SQL Server connections no longer use MARS (MultipleActiveResultSets).

Who is affected. Environments with custom code that assumes MARS.

What to do. If custom code reports the error "There is already an open DataReader associated with this Connection", pass the parameter -applicationDatabaseConnectionOptions "MultipleActiveResultSets=True".

For more information see: SQL Server connections without MARS.

Lists: HTML encoding on by default​

What changes. List column values are HTML-encoded and shown as plain text (protection against XSS attacks through list data). If a list deliberately returns HTML (bold text, links, icons), the tags now show as text.

Who is affected. Lists that return HTML in column values.

What to do. To render the HTML again, clear HTML Encode on that column in the Studio, but only for trusted data.

For more information see: Lists: HTML encoding and line break characters.

Lists: \n and \r written as text​

What changes. \n and \r written as text no longer become line breaks. Values with a backslash, such as domain\robert, now display correctly.

Who is affected. Lists that produced line breaks by returning \n or \r as text.

What to do. For line breaks, return real characters from the query, for example CHAR(13)+CHAR(10).

For more information see: Lists: HTML encoding and line break characters.

The shared EntryPoint.svc is obsolete​

What changes. Every published workflow, microflow, algorithm and table has a web service of its own at WebServices/EntryPoint/<id>.svc. Since version 21.22 the shared EntryPoint.svc is obsolete and will be removed.

  • In an upgraded environment the shared EntryPoint.svc keeps serving existing callers. Calls that stored proxies make by the old merged names (Start_<name>, _2 suffixes and all) are served by the item's own entry point, and am_i_alive still answers.
  • The shared address's WSDL is an empty contract saying the address is obsolete and naming the per-item address.
  • The shared address is switched by www.param.legacy_entry_point: on for an upgraded environment, off for a new one.

Who is affected. Integrations that call workflows, algorithms or tables through the shared EntryPoint.svc.

What to do. Move every caller to its item's own address WebServices/EntryPoint/<id>.svc. Regenerate the proxy from that address's WSDL, which uses the new operation names and namespace. A proxy regenerated from the shared address gets no operations.

For more information see: Separate entry point for every published item.