> ## Documentation Index
> Fetch the complete documentation index at: https://learn.nextedy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Rendering and Display Errors

> Diagnose and resolve visual rendering problems in Nextedy RISKSHEET including blank grids, missing data, incorrect formatting, server log exceptions, and cluster synchronization issues.

export const LastReviewed = ({date}) => {
  if (!date) return null;
  const formatted = new Date(`${date}T00:00:00Z`).toLocaleDateString("en-US", {
    year: "numeric",
    month: "long",
    day: "numeric",
    timeZone: "UTC"
  });
  return <p className="mt-10 text-sm text-gray-400 dark:text-zinc-500 not-prose">
      Last reviewed on {formatted}
    </p>;
};

## Rendering Issue Decision Table

Use this table to identify your specific symptom and jump to the appropriate resolution:

| Symptom                                             | Likely Cause                      | Section                                                                                       |
| --------------------------------------------------- | --------------------------------- | --------------------------------------------------------------------------------------------- |
| Risksheet redirects to space home page              | Missing topic in Polarion view    | [Redirect to Space Home Page](#redirect-to-space-home-page)                                   |
| `UnsupportedOperationException` in server logs      | Document field rendering failure  | [UnsupportedOperationException in Server Logs](#unsupportedoperationexception-in-server-logs) |
| `StringIndexOutOfBoundsException` in server logs    | Misconfigured Velocity template   | [Velocity Template Errors](#velocity-template-errors)                                         |
| Browser console errors ("Positive number expected") | Polarion or configuration issue   | [Browser Console Errors](#browser-console-errors)                                             |
| Configuration looks different across cluster nodes  | Cluster synchronization delay     | [Cluster Node Inconsistency](#cluster-node-inconsistency)                                     |
| Page loads take over 60 seconds                     | Unresolvable work item references | [Slow Loading from Broken Links](#slow-loading-from-broken-links)                             |
| Header tooltips blocking filter buttons             | Known bug in older versions       | [Header Tooltip Overlap](#header-tooltip-overlap)                                             |
| Risksheet not activating after server maintenance   | Post-maintenance compatibility    | [Post-Maintenance Activation Failure](#post-maintenance-activation-failure)                   |
| Enum value mapping errors ("For input string:")     | Invalid enum configuration        | [Enum Configuration Errors](#enum-configuration-errors)                                       |

## Diagnostic Flowchart

Use this flowchart to narrow down the category of your rendering issue before diving into a specific section:

<Frame>
  <img src="https://mintcdn.com/none-17b4493f/t34k0QhMnn4JCqkc/risksheet/diagrams/troubleshooting/rendering-errors/diagram-1.svg?fit=max&auto=format&n=t34k0QhMnn4JCqkc&q=85&s=21cd9665396e2776179f8ab15169a7ce" alt="diagram" style={{ maxWidth: "700px", width: "100%" }} width="700" height="680" data-path="risksheet/diagrams/troubleshooting/rendering-errors/diagram-1.svg" />
</Frame>

## Redirect to Space Home Page

### Problem

When clicking Risksheet in the navigation sidebar, the browser redirects to the project's space home page instead of displaying the Risksheet grid. This affects specific users or all users after an update.

### Cause

The Risksheet **topic** is not configured in the user's active Polarion view (hat). This is the single most common rendering issue and is frequently misidentified as a browser compatibility problem, certificate issue, or installation failure.

### Resolution

**Step 1:** Identify which Polarion view the affected user is using. Ask the user to check their current view in the Polarion UI header.

**Step 2:** Navigate to **Administration > Topics** in the affected project.

**Step 3:** Locate the view configuration for the affected user's view and add the Risksheet topic:

```xml theme={null}
<topic id='risksheet'/>
```

**Step 4:** Save the configuration and ask the user to refresh the page.

<Warning title="Every View Needs the Topic">
  If your Polarion instance uses multiple views for different roles (for example, "Engineer View" and "Manager View"), the `<topic id='risksheet'/>` entry must be present in **every view** where users need Risksheet access. Missing the topic in even one view causes redirects for all users assigned to that view.
</Warning>

Common scenarios where this issue appears:

| Scenario                                   | What Actually Happened                                                     |
| ------------------------------------------ | -------------------------------------------------------------------------- |
| After Risksheet update                     | Topic was removed from a custom view during configuration migration        |
| Only some users affected                   | Those users are assigned to a different Polarion view that lacks the topic |
| Works in Firefox, not Edge (or vice versa) | Users may be logged into different views in different browsers             |
| Appears to be a certificate problem        | Network errors in the browser mask the real cause -- a missing topic entry |

## UnsupportedOperationException in Server Logs

### Problem

The Polarion server log contains `java.lang.UnsupportedOperationException` errors when loading Risksheet, typically referencing document field rendering such as `renderingLayouts`.

### Cause

This exception occurs when the system attempts to render document fields that are not supported in the current Polarion version. The system skips the failed field and continues normally, so **Risksheet functionality is not affected**. This is particularly common after upgrading to Polarion 2310 or later, where the `renderingLayouts` field conversion triggers the error.

### Resolution

**Step 1:** Verify that Risksheet is functioning correctly despite the log errors. Open a risk document and confirm that data loads, columns render, and editing works as expected.

**Step 2:** Update Risksheet to version **24.7.0** or later, which suppresses the document field rendering error entirely. If you are already on 24.7.0 but see related issues, update to **24.7.2** which includes an additional fix.

<Tip title="These Errors Are Harmless">
  `UnsupportedOperationException` errors related to document field rendering (especially `renderingLayouts`) have **no impact** on Risksheet functionality. The system automatically skips unsupported fields and continues loading. If you are on version 24.7.0+ and still see these errors, contact support with the full stack trace.
</Tip>

## Velocity Template Errors

### Problem

The server log shows `StringIndexOutOfBoundsException` errors originating from Velocity template processing, or the top panel displays incorrectly or is blank.

### Cause

These errors are typically caused by a misconfigured sheet configuration or by a custom top panel configuration file (`risksheetTopPanel.vm`). Common triggers include syntax errors in Velocity expressions, references to undefined variables, and incorrectly escaped special characters.

### Resolution

**Step 1:** Check the sheet configuration for any Velocity expressions in `serverRender` column properties or in template references that point at the top panel configuration. Look for these common mistakes:

* Unclosed `${}` or `#{}` blocks
* References to variables that may be null (use `$!variable` for null-safe access)
* String operations on empty values (for example, `.substring()` on a null field)

**Step 2:** If you have a custom top panel configuration file (`risksheetTopPanel.vm`), validate its Velocity syntax by checking these areas:

<Frame>
  <img src="https://mintcdn.com/none-17b4493f/t34k0QhMnn4JCqkc/risksheet/diagrams/troubleshooting/rendering-errors/diagram-2.svg?fit=max&auto=format&n=t34k0QhMnn4JCqkc&q=85&s=c2e3f614a9834c5d5edf6deb70153996" alt="diagram" style={{ maxWidth: "560px", width: "100%" }} width="560" height="300" data-path="risksheet/diagrams/troubleshooting/rendering-errors/diagram-2.svg" />
</Frame>

**Step 3:** Re-upload the corrected sheet configuration and refresh the Risksheet page. Check the server log again to confirm the exception no longer appears.

<Note title="Server Logs Are Essential">
  For Velocity template errors, the Polarion server log contains the specific line number and expression that caused the failure. Always check the full stack trace before attempting configuration changes -- the line number points directly to the problematic expression.
</Note>

## Browser Console Errors

### Problem

The browser developer console shows errors such as "Uncaught Positive number expected" or similar JavaScript exceptions when loading or interacting with Risksheet.

### Cause

Browser console errors during Risksheet usage may originate from three distinct sources:

1. **Risksheet configuration** -- invalid column widths, formula syntax errors, or malformed `cellDecorators`
2. **Polarion core JavaScript** -- not Risksheet-specific; appears on all Polarion pages
3. **Third-party browser extensions** -- ad blockers, accessibility tools, or developer extensions interfering with the grid rendering

### Resolution

**Step 1:** Open the browser developer console (press **F12**, then select the **Console** tab) and note the exact error messages.

**Step 2:** Navigate to a **non-Risksheet** Polarion page (such as the project dashboard or a regular work item) and check if the same errors appear. If they do, the errors originate from Polarion itself, not Risksheet.

**Step 3:** If errors only appear on Risksheet pages, check the sheet configuration for these common issues:

| Configuration Area       | What to Check                                           | Example Fix                                           |
| ------------------------ | ------------------------------------------------------- | ----------------------------------------------------- |
| `columns[].width`        | Width values must be positive integers                  | Change `width: 0` to `width: 80`                      |
| `formulas`               | Formula syntax must be valid JavaScript expressions     | Check for missing parentheses or undefined references |
| `cellDecorators`         | Decorator functions must return valid style class names | Verify jQuery selectors target existing elements      |
| `levels`                 | Level configuration must reference valid column IDs     | Ensure `controlColumn` exists in `columns[]`          |
| `headers.rowHeaderWidth` | Must be a positive number                               | Change `rowHeaderWidth: -1` to `rowHeaderWidth: 40`   |

**Step 4:** Try loading the page in a **private/incognito** browser window to rule out browser extension interference.

<Accordion title="Isolate the Error Source First">
  The most effective diagnostic step is testing the same page in a different browser **and** checking whether errors appear on non-Risksheet pages. This immediately narrows whether the issue is Risksheet-specific, Polarion-wide, or browser-specific.
</Accordion>

## Cluster Node Inconsistency

### Problem

In clustered Polarion deployments, the Risksheet configuration appears correctly on one cluster node but displays differently (wrong columns, old configuration, or missing data) on other nodes. Refreshing the page sometimes resolves the issue temporarily.

### Cause

Configuration changes to the sheet configuration may not immediately propagate across all nodes in a Polarion cluster. When a user's request is routed to a node that has not yet synchronized the latest configuration, the stale version is displayed.

### Resolution

**Step 1:** Refresh the page multiple times. Most cluster synchronization issues resolve within a few seconds to minutes as nodes synchronize.

**Step 2:** If the issue persists, check the Polarion server logs **on each cluster node** for configuration loading errors.

**Step 3:** Verify that all cluster nodes are running the **same version** of both Risksheet and Polarion.

**Step 4:** If inconsistency continues after several minutes, restart the affected cluster node to force a full configuration reload.

<Info title="Verify in application">
  Cluster synchronization timing depends on your Polarion cluster infrastructure. In most deployments, changes propagate within seconds. Persistent inconsistencies lasting more than five minutes typically indicate a node communication issue at the infrastructure level rather than a Risksheet problem.
</Info>

## Slow Loading from Broken Links

### Problem

Risksheet pages take 60 seconds or more to load, with the browser showing a loading spinner for an extended period.

### Cause

Unresolvable work item references (broken cross-project links, deleted items, or items in inaccessible projects) cause expensive `UnresolvableObjectException` processing in the grid data loading API. Each unresolvable reference can add **40+ seconds** of delay per API call, compounding quickly with multiple broken links.

### Resolution

**Step 1:** Check the Polarion server logs for `UnresolvableObjectException` errors. These entries identify which specific work items cannot be resolved:

<Frame>
  <img src="https://mintcdn.com/none-17b4493f/t34k0QhMnn4JCqkc/risksheet/diagrams/troubleshooting/rendering-errors/diagram-3.svg?fit=max&auto=format&n=t34k0QhMnn4JCqkc&q=85&s=ef3c58e398bd29a7bad28376a8df2810" alt="diagram" style={{ maxWidth: "520px", width: "100%" }} width="520" height="260" data-path="risksheet/diagrams/troubleshooting/rendering-errors/diagram-3.svg" />
</Frame>

**Step 2:** Open the risk items containing broken references in the Polarion work item tracker and remove or update the invalid links.

**Step 3:** Reload the Risksheet page and verify improved load times.

<Warning title="Performance Impact of Broken Links">
  Even a small number of unresolvable references can cause dramatic performance degradation. If your Risksheet has 10+ broken cross-project links, total load time can exceed several minutes. Prioritize cleaning up broken references whenever performance suddenly degrades after project restructuring or item deletion.
</Warning>

## Header Tooltip Overlap

### Problem

Header tooltip/helper text covers the column header area, making it difficult or impossible to access sort and filter buttons. Users cannot click the filter icon because the tooltip overlay is in the way.

### Cause

In versions prior to **24.3.3**, header tooltips (descriptions added to column headers via the `description` property) could overlap the sort and filter buttons, especially on narrow columns where space is limited.

### Resolution

**Preferred:** Update Risksheet to version **24.3.3** or later, which fixes the tooltip positioning so it no longer blocks interactive header elements.

**Workaround for older versions:** Widen the affected column by dragging the column border in the header row. A wider column provides enough space for both the tooltip text and the filter/sort buttons to coexist without overlap.

## Post-Maintenance Activation Failure

### Problem

After Polarion server maintenance (OS updates, storage migration, or cluster reconfiguration), Risksheet no longer activates in some or all projects. The grid may show partial rendering, fail to load entirely, or display work items in plain text format instead of the grid layout.

### Cause

Server maintenance can disrupt several components that Risksheet depends on:

* Plugin file permissions or paths may have changed
* Cached configuration state may be stale or corrupted
* Polarion and Risksheet version compatibility may be affected by patches applied during maintenance

### Resolution

**Step 1:** Verify the Risksheet plugin files are still present in `[POLARION_INSTALL]/polarion/extensions/`.

**Step 2:** Delete the configuration cache at `[POLARION_INSTALL]/data/workspace/.config` to force a fresh reload.

**Step 3:** Restart Polarion services completely (not just a soft restart).

**Step 4:** Navigate to **Administration > Nextedy Risksheet > Setup** and verify the setup wizard shows a completed state.

**Step 5:** Check the license status at **Administration > Nextedy Risksheet > License** to confirm the license is still valid and activated.

<Warning title="Always Complete All Update Steps">
  After any server maintenance, verify the Risksheet setup in Administration even if no Risksheet-specific changes were made. Polarion updates applied during maintenance windows can affect plugin compatibility, requiring a Risksheet update to restore full functionality.
</Warning>

## Enum Configuration Errors

### Problem

A configuration error appears with a message like `For input string: nice_to_have` when loading a Risksheet document, particularly when using custom work item types. The same class of error can occur when a rating-typed column references an enum option that does not exist or whose value type is incompatible with the column.

### Cause

This error occurs when an enum value referenced by the sheet configuration does not match an enum option defined in Polarion. Rating scales (severity, occurrence, detection) and enum-typed columns both rely on Polarion enumerations for their allowed values. The system attempts to parse a string enum value where it expects a numeric type, or it references an enum ID that does not exist in the project's enum definitions.

### How Enums and Rating Scales Actually Work

Risksheet does **not** define enum values or rating scales inside the sheet configuration. There is no top-level enum section and no top-level ratings section. Instead:

1. **Enums are defined in Polarion** at **Administration > Enumerations**. Each enumeration has a stable ID and a list of options, each with its own `id` and display name.
2. **A custom field on the work item type** is bound to a specific enum in Polarion's data model.
3. **A column in the sheet configuration** references that field through the `bindings` property and declares its type as either `enum:<enumId>`, `multiEnum:<enumId>`, or `rating:<enumId>`.

When the grid loads, the Risksheet server resolves the enum ID against Polarion's enumeration registry and loads the option list automatically. Rating columns work identically -- the `rating:<enumId>` type uses an enum whose option IDs are numeric (or numeric-like strings) so they can be used in formulas (for example, RPN calculations).

Example column entries:

```yaml theme={null}
columns:
  - id: priority
    header: Priority
    bindings: priority
    type: enum:priorityLevels
  - id: severity
    header: Severity
    bindings: severityRating
    type: rating:severityScale
  - id: hazardCategories
    header: Hazard Categories
    bindings: hazardCategories
    type: multiEnum:hazardCategoryList
```

In this example, `priorityLevels`, `severityScale`, and `hazardCategoryList` are enumeration IDs maintained entirely in Polarion Administration. The sheet configuration only references them by ID.

### Resolution

**Step 1:** Identify the offending column from the error message and locate it in the sheet configuration.

**Step 2:** Note the enum ID after the colon in the column's `type` (for example, `rating:severityScale` -> the enum ID is `severityScale`).

**Step 3:** Navigate to **Administration > Enumerations** in Polarion and open the enumeration with that ID. Verify that:

* The enumeration exists.
* It contains the option IDs that the data references (case-sensitive).
* For rating-typed columns, option IDs are numeric (or convertible to numbers).

**Step 4:** If the enumeration is missing or has the wrong options, fix the enumeration in Polarion Administration. If the column references the wrong enum ID, update the `type` value in the sheet configuration.

**Step 5:** Also verify that the field referenced by the column's `bindings` property is bound to the same enumeration in Polarion's data model configuration. A mismatch between the column type and the underlying field's enum binding produces the same `For input string` error.

**Step 6:** Reload the Risksheet page and confirm the error is gone.

<Warning title="Custom Work Item Types Need Extra Care">
  When setting up FMEA, HARA, or TARA with custom work item types (for example, `wit_failureMode`, `wit_measure`), enum value mappings are a frequent source of configuration errors. Always verify that the `dataTypes` section references valid work item type IDs, that each enum-typed or rating-typed column references an enumeration that actually exists in Polarion, and that the underlying custom field is bound to the same enumeration.
</Warning>

## Verification

After resolving your rendering issue, you should now see:

* The Risksheet grid loading within normal time (under 10 seconds for typical documents)
* All configured columns displaying with correct data and formatting
* No redirect to the space home page when navigating to Risksheet
* No new `UnsupportedOperationException` or `StringIndexOutOfBoundsException` errors in server logs (on updated versions)
* Consistent rendering across all cluster nodes after synchronization completes
* Sort and filter buttons accessible in column headers without tooltip interference

## See Also

* [Link Rendering Issues](/risksheet/troubleshooting/link-rendering-broken) -- broken or missing links in Risksheet columns
* [Slow Page Loading](/risksheet/troubleshooting/performance-slow-loading) -- general performance optimization beyond broken links
* [Browser-Specific Issues](/risksheet/troubleshooting/browser-compatibility) -- rendering differences between browsers
* [Menu Disappeared After Update](/risksheet/troubleshooting/menu-disappeared-after-update) -- navigation issues after version upgrades
* [Error Messages Reference](/risksheet/troubleshooting/error-messages) -- complete index of Risksheet error messages
* [Cell Editing Issues](/risksheet/troubleshooting/cell-editing-issues) -- problems editing cell values after the grid renders
* [Installation](/risksheet/getting-started/installation) -- setup and deployment reference

<LastReviewed date="2026-06-24" />
