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
- Verify string metadata was fully flushed before the query window
- Check for stringId/agentStartTime mismatches caused by agent restarts
- 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)