Issue
Custom table views saved in a Constellation application do not persist. Saved views can be removed after you navigate away from a table, refresh the page, or log out and log back in. In some configurations, saving a view on one table also removes the saved view on another table.
This issue commonly occurs in either of the following configurations:
- Multiple tables that share the same parent View, such as the My worklist and My work queues tables under a
DetailsSubTabsor Tabs template in the Interaction Portal. - A single table component whose data source is changed by a selector, such as a home page list with a dropdown that offers multiple result sets.
Symptoms
- On an affected table, you add filter conditions or change the layout and select Save view as. The view appears to save successfully.
- After you navigate away, refresh the page, or log out and log back in, the saved view is removed and the table returns to its default layout.
- Where two tables share an identifier, saving a view on one table also removes the saved view on the other.
- Users often report the loss as happening at login, because that is when the table next loads. Logging out is not the actual trigger.
- Tables that have unique personalizationId values are unaffected.
- The browser console may display warnings such as:
Columns with following id are not found: WorkList:pxUrgencyAssign, WorkList:pxTaskLabelColumns with following id are not found: Name, UrgencyAssign, TaskLabel, AssignedOperatorID
The console warning is a strong indicator when present, but it does not always appear. Its absence does not rule out a duplicatepersonalizationId.
Impact
Personalized table views are not retained. Saving a view on one table can remove saved views on another table when both tables share the same personalizationId value. Views that are already removed cannot be recovered and must be recreated by users.
Steps to reproduce
Configuration 1: Multiple tables under a shared parent View
- In the Interaction Portal, navigate to the My work queues view.
- Add filter conditions.
- Select Save view as and provide a name.
- Log out and log back in. Observe that the saved work queue view is removed. If a worklist view was previously saved, observe that it is also removed.
Configuration 2: A single table with a data source swapped by a selector
- On the home page, use the view selector to load one result set and save a personalized view.
- Select a different option in the selector so a different result set loads.
- Refresh the page and return to the original selection. Observe that the previously saved view is no longer available.
Explanation
Constellation uses the personalizationId value to store and retrieve saved table views in the System-User-Grids class. Each table is expected to have a unique personalizationId value in its Constellation View JSON metadata.
When two or more Views share the same personalizationId, the response for one table returns personalization entries that belong to another table. The table framework removes (sanitizes) any personalization that does not belong to the currently loaded table. This deletes the associated System-User-Grids instances, so the saved views are removed rather than hidden. The mismatched column configuration can also produce the “Columns with following id are not found” console warnings.
This behavior is not limited to tabbed layouts. It occurs in any configuration where multiple Views share a personalizationId, including a single table component whose data source is swapped by a selector. In that configuration the console warnings may not appear, so comparing personalizationId values across the affected Views is the more reliable diagnostic.
Duplicate personalizationId values are typically introduced when a View is copied, cloned, or created by using Save As from an existing View, because Save As copies the identifier instead of generating a new one. Creating a View through App Studio generates a unique identifier.
This behavior is caused by a client configuration and is not a platform defect. On Pega Platform 24.2.4 and later, it is also distinct from the harness class mismatch in System-User-Grids that is resolved in 24.2.4. That defect produces a different pattern, where views become unretrievable under a different harness class context rather than being deleted through sanitization.
The personalizationId property is the Constellation equivalent of the pyGridStateUniqueID property used in Theme Cosmos, and the same root-cause pattern applies.
Affected Interaction Portal configuration
The table and the table in the Interaction Portal's DetailsSubTabs View shared the same personalizationId in the Constellation View JSON metadata. This issue affects Constellation-based portals in Pega Platform 25.1.2 where multiple tables share the same parent View, such as DetailsSubTabs, Tabs, or similar layout templates. The system uses this identifier to store and retrieve saved table views in the System-User-Grids database.
Because both tables shared the same identifier, saving a view on one tab overwrote the other tab's personalization record. On reload or navigation, the system attempted to apply the incorrect column configuration to whichever tab rendered first, such as worklist columns on the workbasket tab or workbasket columns on the worklist tab. The diagnostic signature is the Columns with following id are not found browser console warning, which appears when the system applies mismatched column configurations across tables that share the same personalizationId. This caused the browser console warnings and caused both saved views to not display.
This behavior was caused by a client configuration issue, and is not a platform defect. The duplicate ID was likely introduced when the Tab 2 table was originally built, copied, cloned, or created by using Save As from an existing View. Tabs 3 and 4 were unaffected because they had unique personalizationId values.
personalizationId is the Constellation equivalent of the pyGridStateUniqueID property used in Theme Cosmos, and the same root cause pattern applies.
Diagnosis
Compare the personalizationId values in the affected View JSON definitions. A shared value confirms the cause and closes the investigation. Run this comparison before investigating authentication, harness context, or platform defect causes.
To view Constellation View JSON in Dev Studio:
- Enable the
pxEnableC11nDevWhen rule by using Private Edit if the rule is Final. - Open the View.
- Click Mark as custom.
Resolution
To resolve the issue, rebuild the affected list in App Studio so that Pega generates a unique personalizationId value for the table.
General guidance
- Only Views that share an identifier need to be rebuilt. Within each conflicting set, one View can retain its existing identifier. On applications with many similar Views, this significantly reduces the effort.
- Create and reference the new View before deleting the old one, so the page is not left pointing at a missing View.
- Do not resolve this by editing the
personalizationIdvalue directly in the View JSON. Such edits can be overwritten the next time the View is updated through the User Interface tab, which reintroduces the conflict. Use a direct edit only to confirm a diagnosis in a lower environment. The App Studio rebuild is the durable fix.
To rebuild a table (using the Interaction Portal work queue as an example):
- In App Studio, open the
DetailsSubTabsView. - Delete the existing My work queues list.
- Add a new List.
- Configure the List with the
D_CSWorkbasketsdata source. - Set the display type to Table.
- Enable table personalization.
- Save the View.
- Clear the browser cache.
- Log out and log back in.
- Save custom views on both the My worklist and My work queues tables.
Confirm that the affected tables retain their saved views independently, do not overwrite each other, and no longer display the related browser console warnings.
Prevention
Create new Views through App Studio rather than by using Save As, copying, or cloning. Where an application requires several similar list Views, author each one new. Adding a personalizationId uniqueness check to design review is recommended, since a collision is not visible at runtime until saved views stop being displayed.
References
- Pega Community – Views configuration best practices
- Pega Community – 25.1 adds Dev Studio Support for Editing Constellation Views
- Pega Docs – Adding Constellation tables to Views