pinpoint-apm/pinpoint · error · NotFoundInstrumentException

not found.

Error message

${adviceClassName} not found.

What it means

Thrown by ASMClass.weave: the advice/aspect class named by the plugin could not be loaded as bytecode via ASMClassNodeAdapter (null result), so the class cannot be woven with that aspect. The input at fault is the adviceClassName configured in the plugin's transformer.

Solutions

  1. Verify the advice class name is correct and ships inside the agent/plugin jar
  2. Check the plugin's class injector can load the advice class in the target classloader
  3. Upgrade the plugin version matching the agent version
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at agent-module/profiler/src/main/java/com/navercorp/pinpoint/profiler/instrument/ASMClass.java:230 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of pinpoint-apm/pinpoint@744c3d3075 (2026-09-07). Data as JSON: /api/errors/ba65f615f6ba441c. Report an issue: GitHub.

Appendix: source

Thrown at agent-module/profiler/src/main/java/com/navercorp/pinpoint/profiler/instrument/ASMClass.java:230

        final String desc = type == null ? null : JavaAssistUtils.toJvmSignature(type);
        return this.classNode.getField(fieldName, desc) != null;
    }

    @Override
    public boolean hasField(String name) {
        return hasField(name, null);
    }

    @Override
    public void weave(final String adviceClassName) throws InstrumentException {
        Objects.requireNonNull(adviceClassName, "adviceClassName");

        final String classInternalName = JavaAssistUtils.javaNameToJvmName(adviceClassName);
        final ClassLoader classLoader = classNode.getClassLoader();
        final ProtectionDomain protectionDomain = classNode.getProtectionDomain();
        final ASMClassNodeAdapter adviceClassNode = ASMClassNodeAdapter.get(this.pluginContext, classLoader, protectionDomain, classInternalName);
        if (adviceClassNode == null) {
            throw new NotFoundInstrumentException(adviceClassName + " not found.");
        }

        final ASMAspectWeaver aspectWeaver = new ASMAspectWeaver();
        aspectWeaver.weaving(this.classNode, adviceClassNode);
        setModified(true);
    }

    @Override
    public InstrumentMethod addDelegatorMethod(final String methodName, final String... paramTypes) throws InstrumentException {
        Objects.requireNonNull(methodName, "methodName");

        // check duplicated method.
        if (getDeclaredMethod(methodName, paramTypes) != null) {
            throw new InstrumentException(getName() + " already have method(" + methodName + ").");
        }

        final ASMClassNodeAdapter superClassNode = ASMClassNodeAdapter.get(this.pluginContext, classNode.getClassLoader(), classNode.getProtectionDomain(), this.classNode.getSuperClassInternalName());
        if (superClassNode == null) {

View on GitHub (pinned to 744c3d3075)