Skip to content

Report Issue fails if the app crashed due to OOM Kill (likely client-side bug) #593

Description

@peter1357908

I found that the Report Issue functionality fails if the app crashed due to an OOM Kill. I debugged a bit and found out the cause is due to a stale state on the client side. This is the failure sequence:

  1. the app crashes due to OOM. Client side shows "This app has been stopped, you can now close this tab."
  2. However, even with the UI showing app as stopped, the internal state is stale and the Report Issue code ended up sending the ProxyID as part of the payload to the server. (code here)
  3. When the server-side IssueController receives the payload with ProxyID, it fails with ApiResponse.failForbidden() because the ID lookup fails (see code here)

I tested sending the same payload minus the ProxyID, and Report Issue went through. See screenshot of the Chrome console below; the top shows the failed payload and the bottom shows a successful manual payload without the ProxyID.

Image

Expected Behavior

Ultimately, I want ShinyProxy to be able to handle reporting issues even if the app failed due to OOM. Ideally, it also reports the "OOM" part as the reason, but that's out of the scope of this GitHub issue.

It seems there is a bug somewhere about updating the client side state, that led to the Report Issue client code sending a ProxyID where it shouldn't.

Activity

  1. LEDfan commented on Jun 4, 2026

    @LEDfan
    Member

    Hi, thanks for opening this issue!
    This is indeed a bug, and we will solve it in the next release.

    Ideally, it also reports the "OOM" part as the reason

    On both the Docker and Kubernetes backends, ShinyProxy is aware when a container crashes because of OOM. In both cases a message is logged in the ShinyProxy logs, for example:

    2026-06-04T16:23:29.815+02:00  WARN 385416 --- [ProxyService-16] e.o.c.b.docker.DockerEngineBackend       : [user=jack proxyId=cba282a4-9b7d-4ad6-bb2b-5719ccbd131c specId=shiny-demo] Docker container failed: container not running, state reported by docker: {"Status":"exited","Running":false,"Paused":false,"Restarting":false,"Pid":0,"ExitCode":137,"StartedAt":1780582996624,"FinishedAt":1780583007808,"Error":"","OOMKilled":true,"Health":null}
    
    

    These logs are currently not sent as part of the report issue feature. We advice to use the monitoring stack in these situations. For docker this is built into the Docker operator (see https://shinyproxy.io/documentation/shinyproxy-operator/docker/#enabling-monitoring ) , on Kubernetes you can use https://github.com/openanalytics/shinyproxy-monitoring

    EDIT: the monitoring stack also allows you to see how much memory the app was using (although if there is a big spike just before the OOM this might not get registered).

  2. added this to the Next milestone on Jun 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions