# 2025.3: "Non-cancelable slow operations are prohibited inside read action" when using PasswordSafe in a Task.WithResult

**URL:** <https://platform.jetbrains.com/t/2025-3-non-cancelable-slow-operations-are-prohibited-inside-read-action-when-using-passwordsafe-in-a-task-withresult/3094>\
**Category:** IntelliJ Platform\
**Tags:** threading, eap\
**Created:** [November 10, 2025, 10:51am UTC](https://platform.jetbrains.com/t/2025-3-non-cancelable-slow-operations-are-prohibited-inside-read-action-when-using-passwordsafe-in-a-task-withresult/3094 "2025-11-10T10:51:15Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![jansorg](https://sea1.discourse-cdn.com/flex001/user_avatar/platform.jetbrains.com/jansorg/32/52_2.png) [@jansorg](https://platform.jetbrains.com/u/jansorg)\
**Post date:** [November 10, 2025, 10:51am UTC](https://platform.jetbrains.com/t/2025-3-non-cancelable-slow-operations-are-prohibited-inside-read-action-when-using-passwordsafe-in-a-task-withresult/3094/1 "2025-11-10T10:51:15Z")

</div>

- Plugin written in Java, not Kotlin
- Current 2025.3 EAP

I’m using `PasswordSafe` in a configurable to store settings, but with 2025.3 there’s an exception now.

`reset()` of the configurable is invoked in a `ReadAction` and access `PasswordSafe`. But the `PasswordSafe` is only used in a `Task.WithResult` to read the password in a background thread.

With 2025.3 (tested with the current EAP), I get an exception.

This seems to happen because the `ReadAction` is inherited now by the code executed inside `Task.WithResult`.

How can I fix this if it’s not possible anymore to move things outside the ReadAction?  
I need to return the password retrieved from the password safe.

Code:

```auto
            if (ApplicationManager.getApplication().isDispatchThread()) {
                var title = "...";
                cachedSettings = ProgressManager.getInstance().run(new Task.WithResult<CachedSettings, Exception>(null, title, false) {
                    @Override
                    protected CachedSettings compute(@NotNull ProgressIndicator indicator) {
                        // this is invoking PasswordSafe.getInstance().getPassword(...)
                        return loadSettingsInBackground();
                    }
                });
            }

```

Stacktrace up to the ReadAction setup:

```auto
java.lang.Throwable: Non-cancelable slow operations are prohibited inside read action. See SlowOperations.assertNonCancelableSlowOperationsAreAllowed javadoc.
	at com.intellij.openapi.diagnostic.Logger.error(Logger.java:375)
	at com.intellij.util.SlowOperations.logError(SlowOperations.java:180)
	at com.intellij.util.SlowOperations.assertNonCancelableSlowOperationsAreAllowed(SlowOperations.java:148)
	at com.intellij.ide.passwordSafe.impl.BasePasswordSafe.get(PasswordSafeImpl.kt:90)
	at com.intellij.credentialStore.CredentialStore.getPassword(CredentialStore.kt:17)
	at appland.settings.AppMapSecureApplicationSettingsService.loadSettingsInBackground(AppMapSecureApplicationSettingsService.java:141)
	at appland.settings.AppMapSecureApplicationSettingsService$1.compute(AppMapSecureApplicationSettingsService.java:123)
	at appland.settings.AppMapSecureApplicationSettingsService$1.compute(AppMapSecureApplicationSettingsService.java:120)
	at com.intellij.openapi.progress.Task$WithResult.run(Task.java:380)
	at com.intellij.openapi.progress.impl.CoreProgressManager.startTask(CoreProgressManager.java:530)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.startTask(ProgressManagerImpl.java:180)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcessWithProgressSynchronously$10(CoreProgressManager.java:620)
	at com.intellij.openapi.progress.impl.ProgressRunner.lambda$new$0(ProgressRunner.java:89)
	at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$4(ProgressRunner.java:268)
	at com.intellij.openapi.progress.ProgressManager.lambda$runProcess$0(ProgressManager.java:98)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$1(CoreProgressManager.java:260)
	at com.intellij.platform.diagnostic.telemetry.helpers.TraceKt.use(trace.kt:44)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:259)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$14(CoreProgressManager.java:713)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:788)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:744)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:712)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:75)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:240)
	at com.intellij.openapi.progress.ProgressManager.runProcess(ProgressManager.java:98)
	at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$5(ProgressRunner.java:268)
	at com.intellij.openapi.progress.impl.ProgressRunner$ProgressRunnable.run$$$capture(ProgressRunner.java:546)
	at com.intellij.openapi.progress.impl.ProgressRunner$ProgressRunnable.run(ProgressRunner.java)
	at --- Async.Stack.Trace --- (captured by IntelliJ IDEA debugger)
	at com.intellij.openapi.progress.impl.ProgressRunner$ProgressRunnable.<init>(ProgressRunner.java:536)
	at com.intellij.openapi.progress.impl.ProgressRunner.lambda$launchTask$21(ProgressRunner.java:493)
	at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:863)
	at java.base/java.util.concurrent.CompletableFuture.uniWhenCompleteStage(CompletableFuture.java:887)
	at java.base/java.util.concurrent.CompletableFuture.whenComplete(CompletableFuture.java:2357)
	at com.intellij.openapi.progress.impl.ProgressRunner.launchTask(ProgressRunner.java:488)
	at com.intellij.openapi.progress.impl.ProgressRunner.execFromEDT(ProgressRunner.java:324)
	at com.intellij.openapi.progress.impl.ProgressRunner.submit(ProgressRunner.java:271)
	at com.intellij.openapi.progress.impl.ProgressRunner.submitAndGet(ProgressRunner.java:212)
	at com.intellij.openapi.application.impl.ApplicationImpl.runProcessWithProgressSynchronously(ApplicationImpl.java:529)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcessWithProgressSynchronously(CoreProgressManager.java:631)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcessWithProgressSynchronously(ProgressManagerImpl.java:85)
	at com.intellij.openapi.progress.impl.CoreProgressManager.run(CoreProgressManager.java:466)
	at com.intellij.openapi.progress.ProgressManager.run(ProgressManager.java:307)
	at appland.settings.AppMapSecureApplicationSettingsService.updateCachedData(AppMapSecureApplicationSettingsService.java:120)
	at appland.settings.AppMapSecureApplicationSettingsService.getOpenAIKey(AppMapSecureApplicationSettingsService.java:87)
	at appland.settings.AppMapProjectSettingsPanel.loadSettingsFrom(AppMapProjectSettingsPanel.kt:39)
	at appland.settings.AppMapProjectConfigurable.reset(AppMapProjectConfigurable.java:35)
	at com.intellij.openapi.options.ex.ConfigurableWrapper.reset(ConfigurableWrapper.java:217)
	at com.intellij.openapi.options.ex.ConfigurableCardPanel.reset(ConfigurableCardPanel.java:194)
	at com.intellij.openapi.options.ex.ConfigurableCardPanel.lambda$createConfigurableComponent$4(ConfigurableCardPanel.java:126)

```
