Summary
When a metadata usage is owned by a Dependency — as a prefix (#Refinement dependency …) or in its body
(dependency … { @Refinement; }) — its type cannot be resolved if it names a metadata definition of the standard
library by its unqualified name, even though the library package is imported. The upload reports
Unable to resolve name 'Refinement', and the imported MetadataUsage has no type. The same name resolves when it is
qualified, and a metadata definition declared in the same package resolves unqualified.
The SysML v2 Pilot Implementation (0.62.0) accepts the file without errors.
Environment
- SysON v2026.9.0 and v2026.9.2 (Docker images
eclipsesyson/syson:v2026.9.0 / v2026.9.2, linux/amd64), blank project
- Uploaded through the GraphQL
uploadDocument mutation
Reproduction
Upload this file into a blank project:
package ReproRefinement {
private import ModelingMetadata::*;
metadata def <mm> LocalMeta;
requirement def Upper;
requirement def A;
requirement def B;
requirement def C;
requirement def D;
requirement def E;
#refinement dependency A to Upper; // library, short name
#Refinement dependency B to Upper; // library, declared name
#mm dependency C to Upper; // local metadata definition
dependency D to Upper { @Refinement; } // library, body annotation
#ModelingMetadata::Refinement dependency E to Upper; // library, qualified name
}
Result, per line (checked with GET /api/rest/projects/{p}/commits/{p}/elements, FeatureTyping.type of each MetadataUsage):
| Metadata |
Annotated element |
Resolved |
#refinement |
Dependency |
no |
#Refinement |
Dependency |
no |
@Refinement in the body |
Dependency |
no |
#mm (local definition) |
Dependency |
yes |
#ModelingMetadata::Refinement |
Dependency |
yes |
The upload reports three warnings, one per unresolved line:
[Warning] Unable to resolve name 'refinement' for reference 'type' on element '[FeatureTyping] ReproRefinement::<OwningMembership>::<Dependency>::<Annotation>::<MetadataUsage>::<FeatureTyping>'
[Warning] Unable to resolve name 'Refinement' for reference 'type' on element '[FeatureTyping] ReproRefinement::<OwningMembership>::<Dependency>::<Annotation>::<MetadataUsage>::<FeatureTyping>'
[Warning] Unable to resolve name 'Refinement' for reference 'type' on element '[FeatureTyping] ReproRefinement::<OwningMembership>::<Dependency>::<Annotation>::<MetadataUsage>::<FeatureTyping>'
ModelingMetadata.json bundled in syson-application-configuration-2026.9.0.jar does declare
MetadataDefinition Refinement with declaredShortName = "refinement", so the definition is available.
Impact
airbus/apollo-11-sysml-v2 records all its cross-layer traceability as
#refinement dependency … to …; (369 dependencies). After upload every one of them keeps its client and supplier but
loses the Refinement typing, so a refinement cannot be told apart from any other dependency. The Pilot
Implementation reports 0 errors and 0 warnings for the same 28 files.
Cause
Not located. In the repro, an unqualified name of an imported library definition fails while a local definition and
a qualified library name resolve. In a separate upload, #Refinement requirement def F; did resolve in SysON
(the Pilot Implementation rejects that line, because Refinement may only annotate a Dependency), so the failure
appears to depend on the annotated element being a Dependency; we have not checked other element kinds.
Workaround
Qualify the name: #ModelingMetadata::Refinement dependency A to Upper;.
Summary
When a metadata usage is owned by a
Dependency— as a prefix (#Refinement dependency …) or in its body(
dependency … { @Refinement; }) — its type cannot be resolved if it names a metadata definition of the standardlibrary by its unqualified name, even though the library package is imported. The upload reports
Unable to resolve name 'Refinement', and the importedMetadataUsagehas no type. The same name resolves when it isqualified, and a metadata definition declared in the same package resolves unqualified.
The SysML v2 Pilot Implementation (0.62.0) accepts the file without errors.
Environment
eclipsesyson/syson:v2026.9.0/v2026.9.2,linux/amd64), blank projectuploadDocumentmutationReproduction
Upload this file into a blank project:
Result, per line (checked with
GET /api/rest/projects/{p}/commits/{p}/elements,FeatureTyping.typeof eachMetadataUsage):#refinement#Refinement@Refinementin the body#mm(local definition)#ModelingMetadata::RefinementThe upload reports three warnings, one per unresolved line:
ModelingMetadata.jsonbundled insyson-application-configuration-2026.9.0.jardoes declareMetadataDefinition RefinementwithdeclaredShortName = "refinement", so the definition is available.Impact
airbus/apollo-11-sysml-v2 records all its cross-layer traceability as
#refinement dependency … to …;(369 dependencies). After upload every one of them keeps its client and supplier butloses the
Refinementtyping, so a refinement cannot be told apart from any other dependency. The PilotImplementation reports 0 errors and 0 warnings for the same 28 files.
Cause
Not located. In the repro, an unqualified name of an imported library definition fails while a local definition and
a qualified library name resolve. In a separate upload,
#Refinement requirement def F;did resolve in SysON(the Pilot Implementation rejects that line, because
Refinementmay only annotate aDependency), so the failureappears to depend on the annotated element being a
Dependency; we have not checked other element kinds.Workaround
Qualify the name:
#ModelingMetadata::Refinement dependency A to Upper;.