conductor-oss/conductor · error · UnsupportedOperationException
Skills are unavailable: no SkillPackageStore/SkillMetadataDA
Error message
Skills are unavailable: no SkillPackageStore/SkillMetadataDAO is configured for this backend. Agents run without skills; supply both beans to enable skill registration and lookup.
What it means
Error "Skills are unavailable: no SkillPackageStore/SkillMetadataDAO is configured for this backend. Agents run without skills; supply both beans to enable skill registration and lookup." thrown in conductor-oss/conductor.
Source
Thrown at agentspan/src/main/java/org/conductoross/conductor/ai/agentspan/runtime/service/SkillRegistryService.java:132
@Value("${agentspan.skills.max-file-count:2000}") int maxFileCount,
ObjectProvider<SkillPackageStore> packageStore,
ObjectProvider<SkillMetadataDAO> metadataDao) {
this.maxPackageBytes = maxPackageBytes;
this.maxPreviewBytes = maxPreviewBytes;
this.maxUncompressedBytes = maxUncompressedBytes;
this.maxFileCount = maxFileCount;
this.packageStore = packageStore.getIfAvailable();
this.metadataDao = metadataDao.getIfAvailable();
}
/** Whether a host supplied skill storage. */
public boolean isSkillStorageAvailable() {
return packageStore != null && metadataDao != null;
}
private void requireSkillStorage() {
if (!isSkillStorageAvailable()) {
throw new UnsupportedOperationException(
"Skills are unavailable: no SkillPackageStore/SkillMetadataDAO is configured for"
+ " this backend. Agents run without skills; supply both beans to enable"
+ " skill registration and lookup.");
}
}
public synchronized SkillDetail register(String manifestJson, MultipartFile packageFile) {
requireSkillStorage();
if (packageFile == null || packageFile.isEmpty()) {
throw new IllegalArgumentException("Skill package is required");
}
Map<String, Object> manifest = parseManifest(manifestJson);
byte[] bytes = readPackage(packageFile);
String checksum = sha256Hex(bytes);
ParsedSkillPackage parsed = parseSkillPackage(bytes, manifest);
String name = parsed.name();View on GitHub (pinned to cf7c3e4a8a)
Solutions
- Configure both a SkillPackageStore and a SkillMetadataDAO bean for the active backend to enable skills.
- If skills are not needed, ignore this; agents run without skills by design.
When it happens
Trigger: Thrown at agentspan/src/main/java/org/conductoross/conductor/ai/agentspan/runtime/service/SkillRegistryService.java:132 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of conductor-oss/conductor@cf7c3e4a8a (2026-08-14).
Data as JSON: /api/errors/d4ba879b40598fae.
Report an issue: GitHub.