Describe the bug
In our JetBrains Gateway plugin, you get a list of the available workspaces. This allows you to pick the workspace that you want to connect to. When using Red Hat sandbox, one can detect in the logs that watching workspaces in a (system-) namespace errors because of lacking permissions.
Che version
7.115@latest
Steps to reproduce
- ASSERT: have Red Hat sandbox configured as current cluster
- EXEC: launch JetBrains Gateway connection wizard and proceed to the listing of the available workspaces
- EXEC: look into the logs
Result:
You'll find an error similar to the following:
Exception in thread "DefaultDispatcher-worker-3 @coroutine#3724" io.kubernetes.client.openapi.ApiException: Message:
HTTP response code: 403
HTTP response body: {"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"devworkspaces.workspace.devfile.io is forbidden: User \"adietish\" cannot watch resource \"devworkspaces\" in API group \"workspace.devfile.io\" in the namespace \"openshift-virtualization-os-images\"","reason":"Forbidden","details":{"group":"workspace.devfile.io","kind":"devworkspaces"},"code":403}
HTTP response headers: {audit-id=[261b0fb4-2c18-4c5b-83a9-c148989e4bc2], cache-control=[no-cache, private], content-length=[380], content-type=[application/json], date=[Mon, 23 Mar 2026 09:13:43 GMT], strict-transport-security=[max-age=31536000; includeSubDomains; preload], x-content-type-options=[nosniff], x-kubernetes-pf-flowschema-uid=[4710cbd2-9e91-475c-89e4-6b564a829c17], x-kubernetes-pf-prioritylevel-uid=[f72f557e-bf08-45e5-b028-beb84de6a79f]}
at io.kubernetes.client.util.Watch.createWatch(Watch.java:107)
at com.redhat.devtools.gateway.openshift.DevWorkspaces.createWatcher(DevWorkspaces.kt:264)
at com.redhat.devtools.gateway.openshift.DevWorkspaces.createWatcher$default(DevWorkspaces.kt:263)
at com.redhat.devtools.gateway.view.steps.DevSpacesWorkspacesStepView.onInit$lambda$1(DevSpacesWorkspacesStepView.kt:127)
at com.redhat.devtools.gateway.openshift.DevWorkspaceWatcher.watchLoop(DevWorkspaceWatcher.kt:47)
at com.redhat.devtools.gateway.openshift.DevWorkspaceWatcher.access$watchLoop(DevWorkspaceWatcher.kt:25)
at com.redhat.devtools.gateway.openshift.DevWorkspaceWatcher$start$1.invokeSuspend(DevWorkspaceWatcher.kt:36)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith$$$capture(ContinuationImpl.kt:33)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt)
at --- Async.Stack.Trace --- (captured by IntelliJ IDEA debugger)
at kotlinx.coroutines.debug.internal.DebugProbesImpl$CoroutineOwner.<init>(DebugProbesImpl.kt:531)
at kotlinx.coroutines.debug.internal.DebugProbesImpl.createOwner(DebugProbesImpl.kt:510)
at kotlinx.coroutines.debug.internal.DebugProbesImpl.probeCoroutineCreated$kotlinx_coroutines_core(DebugProbesImpl.kt:497)
at kotlin.coroutines.jvm.internal.DebugProbesKt.probeCoroutineCreated(DebugProbesKt.java:12)
at kotlin.coroutines.intrinsics.IntrinsicsKt__IntrinsicsJvmKt.createCoroutineUnintercepted(IntrinsicsJvm.kt:161)
at kotlinx.coroutines.intrinsics.CancellableKt.startCoroutineCancellable(Cancellable.kt:26)
at kotlinx.coroutines.intrinsics.CancellableKt.startCoroutineCancellable$default(Cancellable.kt:21)
at kotlinx.coroutines.CoroutineStart.invoke(CoroutineStart.kt:88)
at kotlinx.coroutines.AbstractCoroutine.start(AbstractCoroutine.kt:123)
at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch(Builders.common.kt:52)
at kotlinx.coroutines.BuildersKt.launch(Unknown Source)
at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch$default(Builders.common.kt:43)
at kotlinx.coroutines.BuildersKt.launch$default(Unknown Source)
at com.redhat.devtools.gateway.openshift.DevWorkspaceWatcher.start(DevWorkspaceWatcher.kt:35)
at com.redhat.devtools.gateway.openshift.DevWorkspaceWatchManager.start(DevWorkspaceWatcher.kt:94)
at com.redhat.devtools.gateway.openshift.DevWorkspaceWatchManager.start$default(DevWorkspaceWatcher.kt:83)
at com.redhat.devtools.gateway.view.steps.DevSpacesWorkspacesStepView.onInit(DevSpacesWorkspacesStepView.kt:174)
at com.redhat.devtools.gateway.view.DevSpacesWizardView.applyStep(DevSpacesWizardView.kt:95)
at com.redhat.devtools.gateway.view.DevSpacesWizardView.nextStep(DevSpacesWizardView.kt:73)
at com.redhat.devtools.gateway.view.DevSpacesWizardView.createButtons$lambda$0$0$2(DevSpacesWizardView.kt:61)
at com.intellij.ui.dsl.builder.impl.RowImpl.button$lambda$5(RowImpl.kt:203)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972)
at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2314)
at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:407)
at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279)
at java.desktop/java.awt.Component.processMouseEvent(Component.java:6673)
at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3394)
at java.desktop/java.awt.Component.processEvent(Component.java:6438)
at java.desktop/java.awt.Container.processEvent(Container.java:2266)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5043)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4871)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4963)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4577)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4518)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310)
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2810)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4871)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:783)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:728)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:98)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:755)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:753)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:752)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.kt:585)
at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.kt:530)
at com.intellij.ide.IdeEventQueue._dispatchEvent$lambda$16(IdeEventQueue.kt:473)
at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runWriteIntentReadAction$lambda$6(AnyThreadWriteThreadingSupport.kt:274)
at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runWithTemporaryThreadLocal(AnyThreadWriteThreadingSupport.kt:204)
at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runWriteIntentReadAction(AnyThreadWriteThreadingSupport.kt:274)
at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runPreventiveWriteIntentReadAction(AnyThreadWriteThreadingSupport.kt:218)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:473)
at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$12$lambda$11$lambda$10$lambda$9(IdeEventQueue.kt:307)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:864)
at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$12$lambda$11$lambda$10(IdeEventQueue.kt:306)
at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$3(IdeEventQueue.kt:958)
at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:117)
at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:958)
at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$12(IdeEventQueue.kt:301)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:341)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)
Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [CoroutineId(3724), "coroutine#3724":StandaloneCoroutine{Cancelling}@54ec72c, Dispatchers.IO]
Expected behavior
The system namespace should not be watched for workspaces
Runtime
OpenShift
Screenshots
No response
Installation method
other (please specify in additional context)
Environment
Dev Sandbox (workspaces.openshift.com)
Eclipse Che Logs
Additional context
No response
Describe the bug
In our JetBrains Gateway plugin, you get a list of the available workspaces. This allows you to pick the workspace that you want to connect to. When using Red Hat sandbox, one can detect in the logs that watching workspaces in a (system-) namespace errors because of lacking permissions.
Che version
7.115@latest
Steps to reproduce
Result:
You'll find an error similar to the following:
Expected behavior
The system namespace should not be watched for workspaces
Runtime
OpenShift
Screenshots
No response
Installation method
other (please specify in additional context)
Environment
Dev Sandbox (workspaces.openshift.com)
Eclipse Che Logs
Additional context
No response