Portal returns 403 or 500 error when accessing a Dashboard
search cancel

Portal returns 403 or 500 error when accessing a Dashboard

book

Article ID: 209079

calendar_today

Updated On:

Products

CA Performance Management - Usage and Administration DX NetOps

Issue/Introduction

In 22.2.7 and earlier releases this is seen with a 403 error that suggests an authorization issue. This was a defect of it's own, a 403 error from an error unrelated to authorization issues.

In 22.2.8 and newer releases this was resolved and the issue appears with a 500 error.

Both issues are caused by the same problem, a corrupt Dashboard View Displays HTTP 500 Error

A dashboard became corrupted and now is returning HTTP ERROR 500 errors. We created a new dashboard to work around the issue. However the corrupted dashboard deleted.  What is the process to delete the corrupted dashboard?

We see this error in the browser.

HTTP ERROR 500
Problem accessing /pc/desktop/page. Reason:

    Server Error
Caused by:
javax.servlet.ServletException: javax.servlet.ServletException: java.lang.IllegalArgumentException: Models share the same TreeID: 1_1 3_99 3_3 0_4 0_5 0_11 0_12 0_13 98057_1 on PageID: 2000129
 at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:168)
 at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
 at org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:335)
 at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
 at org.eclipse.jetty.server.Server.handle(Server.java:505)
 at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:370)
 at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:267)
 at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
 at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
 at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.onFillable(SslConnection.java:427)
 at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:321)
 at org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:159)
 at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
 at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
 at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
 at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
 at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
 at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
 at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
 at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:698)
 at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:804)
 at java.lang.Thread.run(Thread.java:748)

Environment

All supported DX NetOps Performance Management releases

Cause

Dashboard save failed to properly set a value resulting in a corrupted broken Dashboard.

Resolution

There is no fixing the Dashboard once it's reached this state. All we can do is get it into a state where it's able to be deleted. To fully resolve it, generate a new Dashboard to replace the broken one.

To resolve this we export the broken Dashboard via REST. We edit it so when imported again it will work enough to allow deletion.

The edits necessary are often different for each Dashboard. As a result please export the Dashboard XML files, then open a new Support case with the files attached. Reference this article and we'll provide edited XML to help resolve this.

Export the Dashboard XML data

  1. Open the corrupted dashboard view to generate the HTTP error. Note the PageID value.
  2. Go to the following URL: <PC_HOST>:<Port>/pc/center/webservice/dashboards/<PageID>
    1. Replace <PC_HOST> with the Portal Host Name or IP Address
    2. Replace the <Port> with the Portal Port
    3. Replace <PageID> with the PageID value from the error.
  3. Copy the XML data posted to the browser tab into a text file.

Next we need to open a new Support case with:

  • The exported XML data file(s) attached
  • A reference to this Knowledge Base article

We'll provide edited XML files that can be used to resolve the problem.

To import the edited files:

  1. Open your favorite REST API client
  2. Set up a PUT request targeting this URL: <PC_HOST>:<Port>/pc/center/webservice/dashboards/<PageID>
    1. Replace <PC_HOST> with the Portal Host Name or IP Address
    2. Replace the <Port> with the Portal Port
    3. Replace <PageID> with the PageID value from the error.
  3. Place the edited XML data into the Body of the PUT request.
  4. Ensure Content-Type is set to application/xml
  5. Ensure an auth header is set for the PC admin user credentials.
  6. Issue the PUT request. Confirm a successful 200(OK) response is returned.

Once successfully re-imported the Dashboard should be able to be selected and deleted from the Portal web UI.

Additional Information

It's undetermined what triggers the Dashboard corruption in the first place. We believe that something goes wrong during a Dashboard save that results in a missing or invalid value being set. Without yet finding a reproducible scenario we're yet to find a particular root cause.

Newer Performance Management releases are more resistant to these corrupted Dashboard issues.