JetBrains/intellij-community · error · EvaluateException

Internal error. See logs for more details

Error message

Internal error. See logs for more details

What it means

The generic catch-all in NodeDescriptorImpl.updateRepresentationNoNotify: any unexpected RuntimeException from calcRepresentation (the node-label computation) that is not one of the known JDI exceptions is logged (LOG.debug in a modifiable VM, LOG.warn in a read-only one) and rethrown as EvaluateException('internal.debugger.error'). The real root cause is only visible in idea.log.

Source

Thrown at java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/NodeDescriptorImpl.java:91

        throw new EvaluateException(JavaDebuggerBundle.message("error.invalid.stackframe"));
      }
      catch (ObjectCollectedException e) {
        throw EvaluateExceptionUtil.OBJECT_WAS_COLLECTED;
      }
      catch (VMDisconnectedException e) {
        throw e;
      }
      catch (RuntimeException e) {
        if (e.getCause() instanceof InterruptedException) {
          throw e;
        }
        if (context != null && context.getVirtualMachineProxy().canBeModified()) { // do not care in read only vms
          LOG.debug(e);
        }
        else {
          LOG.warn(e);
        }
        throw new EvaluateException(JavaDebuggerBundle.message("internal.debugger.error"));
      }
    }
    catch (EvaluateException e) {
      setFailed(e);
    }
  }

  protected abstract @NlsContexts.Label String calcRepresentation(EvaluationContextImpl context, DescriptorLabelListener labelListener) throws EvaluateException;

  @Override
  public void displayAs(NodeDescriptor descriptor) {
    if (descriptor instanceof NodeDescriptorImpl that) {
      myIsExpanded = that.myIsExpanded;
      myIsSelected = that.myIsSelected;
      myIsVisible = that.myIsVisible;
      myUserData = that.myUserData != null ? new HashMap<>(that.myUserData) : null;

      // TODO introduce unified way to handle this

View on GitHub (pinned to be881553f2)

Solutions

  1. Open idea.log (Help | Show Log in Explorer/Finder) and find the stack trace logged right before this message to identify the real cause
  2. If a custom Type Renderer is configured for the failing type, disable or fix it (Settings | Debugger | Data Views | Java Type Renderers)
  3. Disable third-party debugger plugins and retry to isolate the source
  4. If the log shows an IDE platform stack trace, update IntelliJ to the latest version / report the exception with the log attached
Defensive patterns

Strategy: try-catch

Try / catch

try {
  descriptor.updateRepresentationNoNotify(context, listener);
} catch (EvaluateException e) {
  if (JavaDebuggerBundle.message("internal.debugger.error").equals(e.getMessage())) {
    LOGGER.error("Label computation failed", e.getCause()); // real cause is in idea.log
  }
}

Prevention

When it happens

Trigger: Any unclassified runtime failure while rendering a value's label: ClassLoader issues resolving renderer classes, custom type renderer (Type Renderer in data views) throwing, NPEs in JDI mirror access, or bugs in a node descriptor implementation.

Common situations: A user-defined Java Type Renderer with broken code in the debugger 'Data Views | Type Renderers' settings; broken third-party debugger plugin; JVM returning unexpected types (non-HotSpot VMs); IDE bugs after class redefinition.

Related errors


AI-assisted analysis of JetBrains/intellij-community@be881553f2 (2026-08-14). Data as JSON: /api/errors/d8e2e647a854ff86. Report an issue: GitHub.