pinpoint-apm/pinpoint · error

ERROR_API_METADATA_NOT_FOUND

ERROR_API_METADATA_NOT_FOUND

Error message

CACHED-STRING-ID not found. stringId:

What it means

Warn-level diagnostic in SpanServiceImpl's cached-string replacement: a cached-args annotation references a stringId that is absent from the cached string dictionary, so the annotation cannot be resolved to its original string value.

Solutions

  1. Verify string metadata was fully flushed before the query window
  2. Check for stringId/agentStartTime mismatches caused by agent restarts
  3. Fall back to rendering the raw annotation value when lookup misses
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at web/src/main/java/com/navercorp/pinpoint/web/trace/service/SpanServiceImpl.java:656 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/3026e0f644d637ae. Report an issue: GitHub.

Appendix: source

Thrown at web/src/main/java/com/navercorp/pinpoint/web/trace/service/SpanServiceImpl.java:656

    private AnnotationReplacementCallback transitionCachedString() {
        return new AnnotationReplacementCallback() {
            @Override
            public void replacement(Align align, List<AnnotationBo> annotationBoList, MetadataAccessor metadataAccessor) {

                List<AnnotationBo> cachedStringAnnotation = AnnotationUtils.findAnnotations(annotationBoList,
                        e -> AnnotationKeyUtils.isCachedArgsKey(e.getKey()));
                if (cachedStringAnnotation.isEmpty()) {
                    return;
                }
                for (AnnotationBo annotationBo : cachedStringAnnotation) {
                    final int cachedArgsKey = annotationBo.getKey();
                    int stringMetaDataId = (Integer) annotationBo.getValue();
                    List<StringMetaDataBo> stringMetaList = metadataAccessor.getStringMetaData(align.getServiceUid(), align.getAgentId(), align.getAgentStartTime(), stringMetaDataId);
                    int size = stringMetaList.size();
                    if (size == 0) {
                        logger.warn("StringMetaData not Found {}/{}/{}", align.getAgentId(), stringMetaDataId, align.getAgentStartTime());
                        String errorMessage = "CACHED-STRING-ID not found. stringId:";
                        AnnotationBo api = AnnotationBo.of(AnnotationKey.ERROR_API_METADATA_NOT_FOUND.getCode(), errorMessage);
                        annotationBoList.add(api);
                    } else if (size >= 1) {
                        // key collision shouldn't really happen (probability too low)
                        StringMetaDataBo stringMetaDataBo = stringMetaList.get(0);

                        AnnotationBo stringMetaData = AnnotationBo.of(AnnotationKeyUtils.cachedArgsToArgs(cachedArgsKey), stringMetaDataBo.getStringValue());
                        annotationBoList.add(stringMetaData);
                        if (size > 1) {
                            logger.warn("stringMetaData size not 1 :{}", stringMetaList);
                        }
                    }
                }
            }


        };
    }

View on GitHub (pinned to 744c3d3075)