Skip to content

Unable to clone repository / ZIP download fails on Windows due to long path lengths #999

@mm-hsh

Description

@mm-hsh

Describe the bug

Cloning the basyx-java-server-sdk repository on Windows fails during checkout with multiple Filename too long errors.
Additionally, downloading the repository as a ZIP file from GitHub results in an invalid ZIP archive that Windows cannot open.


To Reproduce

Option 1: Git clone

  1. Use a Windows system
  2. Open Command Prompt, PowerShell, or Git Bash
  3. Run:
    git clone https://github.com/eclipse-basyx/basyx-java-server-sdk.git
  4. Observe multiple errors such as:
    error: unable to create file ... : Filename too long
    fatal: cannot create directory ... : Filename too long
    warning: Clone succeeded, but checkout failed.
    

Option 2: Download ZIP

  1. Open the repository on GitHub
  2. Click Code → Download ZIP
  3. Try to extract the ZIP using Windows Explorer
  4. Extraction fails with:
    Windows cannot open the folder.
    The Compressed (zipped) Folder is invalid.
    

Expected behavior

  • Repository should clone successfully on Windows
  • ZIP file downloaded from GitHub should extract without errors

Actual behavior

  • git clone fails due to Windows path length restrictions
  • ZIP archive cannot be opened or extracted by Windows

BaSyx Information

  • BaSyx Version: Not applicable (repository cloning stage)
  • BaSyx SDK: Java
  • AAS Version: DotAAS V3 (repository default)

Screenshots

Screenshots attached showing:

  • Filename too long errors during Git checkout

  • Windows error dialog reporting an invalid compressed archive

git clone https://github.com/eclipse-basyx/basyx-java-server-sdk.git
Cloning into 'basyx-java-server-sdk'...
remote: Enumerating objects: 31033, done.
remote: Counting objects: 100% (1316/1316), done.
remote: Compressing objects: 100% (766/766), done.
remote: Total 31033 (delta 936), reused 604 (delta 490), pack-reused 29717 (from 2)
Receiving objects: 100% (31033/31033), 20.54 MiB | 3.45 MiB/s, done.
Resolving deltas: 100% (9299/9299), done.
error: unable to create file basyx.aasdigitaltwinregistry/basyx.digitaltwinregistry.component/src/test/java/org/eclipse/digitaltwin/basyx/digitaltwinregistry/component/tests/documentation/DTRegistryApiDocumentationConfigurationTest.java: Filename too long
error: unable to create file basyx.aasdiscoveryservice/basyx.aasdiscoveryservice-backend-mongodb/src/main/java/org/eclipse/digitaltwin/basyx/aasdiscoveryservice/backend/mongodb/configuration/MongoDBAasDiscoveryDocumentBackendConfiguration.java: Filename too long
error: unable to create file basyx.aasdiscoveryservice/basyx.aasdiscoveryservice-feature-authorization/src/main/java/org/eclipse/digitaltwin/basyx/aasdiscoveryservice/feature/authorization/AuthorizedAasDiscoveryServiceConfiguration.java: Filename too long
error: unable to create file basyx.aasdiscoveryservice/basyx.aasdiscoveryservice-feature-authorization/src/main/java/org/eclipse/digitaltwin/basyx/aasdiscoveryservice/feature/authorization/rbac/AasDiscoveryServiceTargetPermissionVerifier.java: Filename too long
error: unable to create file basyx.aasdiscoveryservice/basyx.aasdiscoveryservice-feature-authorization/src/test/java/org/eclipse/digitaltwin/basyx/aasdiscoveryservice/feature/authorization/TestAuthorizedAasDiscoveryServiceSpecific.java: Filename too long
error: unable to create file basyx.aasdiscoveryservice/basyx.aasdiscoveryservice-feature-authorization/src/test/java/org/eclipse/digitaltwin/basyx/aasdiscoveryservice/feature/authorization/TestAuthorizedAasDiscoveryServiceWildcard.java: Filename too long
error: unable to create file basyx.aasenvironment/basyx.aasenvironment-feature-authorization/src/main/java/org/eclipse/digitaltwin/basyx/aasenvironment/feature/authorization/rbac/backend/submodel/AasEnvironmentTargetInformationAdapter.java: Filename too long
error: unable to create file basyx.aasregistry/basyx.aasregistry-service-basetests/src/main/resources/org/eclipse/digitaltwin/basyx/aasregistry/service/tests/integration/whenRegisterAndUnregisterSubmodel_thenSubmodelIsCreatedAndDeleted_toregister.json: Filename too long
error: unable to create file basyx.aasregistry/basyx.aasregistry-service-basetests/src/main/resources/org/eclipse/digitaltwin/basyx/aasregistry/service/tests/whenGetAllAssetAdministrationShellDescriptorsAndEmptyRepo_thenEmptyList_repo.json: Filename too long
error: unable to create file basyx.aasregistry/basyx.aasregistry-service-basetests/src/main/resources/org/eclipse/digitaltwin/basyx/aasregistry/service/tests/whenGetAllAssetAdministrationShellDescriptorsFilteredByInstanceAndType_thenOnlyMatching.json: Filename too long
error: unable to create file basyx.aasregistry/basyx.aasregistry-service-basetests/src/main/resources/org/eclipse/digitaltwin/basyx/aasregistry/service/tests/whenGetAllAssetAdministrationShellDescriptorsFilteredByInstanceAndType_thenOnlyMatching_repo.json: Filename too long
error: unable to create file basyx.aasregistry/basyx.aasregistry-service-basetests/src/main/resources/org/eclipse/digitaltwin/basyx/aasregistry/service/tests/whenGetAllAssetAdministrationShellDescriptorsFilteredByInstance_thenOnlyInstance.json: Filename too long
error: unable to create file basyx.aasregistry/basyx.aasregistry-service-basetests/src/main/resources/org/eclipse/digitaltwin/basyx/aasregistry/service/tests/whenGetAllAssetAdministrationShellDescriptorsFilteredByInstance_thenOnlyInstance_repo.json: Filename too long
error: unable to create file basyx.aasregistry/basyx.aasregistry-service-basetests/src/main/resources/org/eclipse/digitaltwin/basyx/aasregistry/service/tests/whenGetAllAssetAdministrationShellDescriptorsFilteredByNotApplicable_thenOnlyNotApplicable.json: Filename too long
error: unable to create file basyx.aasregistry/basyx.aasregistry-service-basetests/src/main/resources/org/eclipse/digitaltwin/basyx/aasregistry/service/tests/whenGetAllAssetAdministrationShellDescriptorsFilteredByNotApplicable_thenOnlyNotApplicable_repo.json: Filename too long
error: unable to create file basyx.aasregistry/basyx.aasregistry-service-basetests/src/main/resources/org/eclipse/digitaltwin/basyx/aasregistry/service/tests/whenGetAllAssetAdministrationShellDescriptorsFilteredByTypeAndType_thenOnlyMatching.json: Filename too long
error: unable to create file basyx.aasregistry/basyx.aasregistry-service-basetests/src/main/resources/org/eclipse/digitaltwin/basyx/aasregistry/service/tests/whenGetAllAssetAdministrationShellDescriptorsFilteredByTypeAndType_thenOnlyMatching_repo.json: Filename too long
error: unable to create file basyx.aasregistry/basyx.aasregistry-service-basetests/src/main/resources/org/eclipse/digitaltwin/basyx/aasregistry/service/tests/whenGetAllAssetAdministrationShellDescriptorsFilteredByTypeName_thenOnlyMatching.json: Filename too long
error: unable to create file basyx.aasregistry/basyx.aasregistry-service-basetests/src/main/resources/org/eclipse/digitaltwin/basyx/aasregistry/service/tests/whenGetAllAssetAdministrationShellDescriptorsFilteredByTypeName_thenOnlyMatching_repo.json: Filename too long
error: unable to create file basyx.aasregistry/basyx.aasregistry-service-basetests/src/main/resources/org/eclipse/digitaltwin/basyx/aasregistry/service/tests/whenGetAllAssetAdministrationShellDescriptorsFilteredByType_thenOnlyType.json: Filename too long
error: unable to create file basyx.aasregistry/basyx.aasregistry-service-basetests/src/main/resources/org/eclipse/digitaltwin/basyx/aasregistry/service/tests/whenGetAllAssetAdministrationShellDescriptorsFilteredByType_thenOnlyType_repo.json: Filename too long
error: unable to create file basyx.aasregistry/basyx.aasregistry-service-basetests/src/main/resources/org/eclipse/digitaltwin/basyx/aasregistry/service/tests/whenGetAllAssetAdministrationShellDescriptorsFilteredNoKindButType_thenOnlyMatching.json: Filename too long
error: unable to create file basyx.aasregistry/basyx.aasregistry-service-basetests/src/main/resources/org/eclipse/digitaltwin/basyx/aasregistry/service/tests/whenGetAllAssetAdministrationShellDescriptorsFilteredNoKindButType_thenOnlyMatching_repo.json: Filename too long
error: unable to create file basyx.aasregistry/basyx.aasregistry-service-basetests/src/main/resources/org/eclipse/digitaltwin/basyx/aasregistry/service/tests/whenGetAllAssetAdministrationShellDescriptorsFilteredNotApplicableAndType_thenOnlyMatching.json: Filename too long
error: unable to create file basyx.aasregistry/basyx.aasregistry-service-basetests/src/main/resources/org/eclipse/digitaltwin/basyx/aasregistry/service/tests/whenGetAllAssetAdministrationShellDescriptorsFilteredNotApplicableAndType_thenOnlyMatching_repo.json: Filename too long
error: unable to create file basyx.aasregistry/basyx.aasregistry-service-basetests/src/main/resources/org/eclipse/digitaltwin/basyx/aasregistry/service/tests/whenGetAllAssetAdministrationShellDescriptorsOverTwoPages_thenReturnPageStepByStep.json: Filename too long
error: unable to create file basyx.aasregistry/basyx.aasregistry-service-basetests/src/main/resources/org/eclipse/digitaltwin/basyx/aasregistry/service/tests/whenGetAllAssetAdministrationShellDescriptorsOverTwoPages_thenReturnPageStepByStep_repo.json: Filename too long
error: unable to create file basyx.aasregistry/basyx.aasregistry-service-basetests/src/main/resources/org/eclipse/digitaltwin/basyx/aasregistry/service/tests/whenRegexSearchForSubmodelEndpointsProtocolInformationEndpointProtocolVersion_whenSubmodelsFound.json: Filename too long
error: unable to create file basyx.aasregistry/basyx.aasregistry-service-basetests/src/main/resources/org/eclipse/digitaltwin/basyx/aasregistry/service/tests/whenRegexSearchForSubmodelEndpointsProtocolInformationEndpointProtocolVersion_whenSubmodelsFound_repo.json: Filename too long
error: unable to create file basyx.aasregistry/basyx.aasregistry-service-basetests/src/main/resources/org/eclipse/digitaltwin/basyx/aasregistry/service/tests/whenRegisterAssetAdministrationShellDescriptorAndWasAlreadyPresent_thenElementIsOverridden.json: Filename too long
error: unable to create file basyx.aasregistry/basyx.aasregistry-service-basetests/src/main/resources/org/eclipse/digitaltwin/basyx/aasregistry/service/tests/whenRegisterAssetAdministrationShellDescriptorAndWasNotAlreadyPresent_thenElementIsAdded.json: Filename too long
error: unable to create file basyx.aasregistry/basyx.aasregistry-service-basetests/src/main/resources/org/eclipse/digitaltwin/basyx/aasregistry/service/tests/whenRegisterSubmodelDescriptorAndWasAlreadyPresent_thenElementIsOverridden.json: Filename too long
error: unable to create file basyx.aasregistry/basyx.aasregistry-service-basetests/src/main/resources/org/eclipse/digitaltwin/basyx/aasregistry/service/tests/whenRegisterSubmodelDescriptorAndWasAlreadyPresent_thenElementIsOverridden_events.json: Filename too long
error: unable to create file basyx.aasregistry/basyx.aasregistry-service-basetests/src/main/resources/org/eclipse/digitaltwin/basyx/aasregistry/service/tests/whenRegisterSubmodelDescriptorAndWasNotAlreadyPresent_thenElementIsAdded.json: Filename too long
error: unable to create file basyx.aasregistry/basyx.aasregistry-service-basetests/src/main/resources/org/eclipse/digitaltwin/basyx/aasregistry/service/tests/whenRegisterSubmodelDescriptorAndWasNotAlreadyPresent_thenElementIsAdded_events.json: Filename too long
error: unable to create file basyx.aasregistry/basyx.aasregistry-service-basetests/src/main/resources/org/eclipse/digitaltwin/basyx/aasregistry/service/tests/whenRegistrationUpdateForNewId_AvailableUnderNewIdAndTwoEventsFired_events.json: Filename too long
error: unable to create file basyx.aasregistry/basyx.aasregistry-service-basetests/src/main/resources/org/eclipse/digitaltwin/basyx/aasregistry/service/tests/whenSearchForSubmodelEndpointsProtocolInformationEndpointProtocolVersion_whenSubmodelsFound.json: Filename too long
error: unable to create file basyx.aasregistry/basyx.aasregistry-service-basetests/src/main/resources/org/eclipse/digitaltwin/basyx/aasregistry/service/tests/whenSearchForSubmodelEndpointsProtocolInformationEndpointProtocolVersion_whenSubmodelsFound_repo.json: Filename too long
error: unable to create file basyx.aasregistry/basyx.aasregistry-service-basetests/src/main/resources/org/eclipse/digitaltwin/basyx/aasregistry/service/tests/whenSearchShellExtValueAndExtNameIsNotSetInQuery_AllWithValueReturned_repo.json: Filename too long
error: unable to create file basyx.aasregistry/basyx.aasregistry-service-basetests/src/main/resources/org/eclipse/digitaltwin/basyx/aasregistry/service/tests/whenUnregisterAssetAdministrationShellDescriptorAndWasPresent_thenElementIsRemoved.json: Filename too long
error: unable to create file basyx.aasregistry/basyx.aasregistry-service-basetests/src/main/resources/org/eclipse/digitaltwin/basyx/aasregistry/service/tests/whenUnregisterAssetAdministrationShellDescriptorById_thenReturnTrueAndEntryRemoved.json: Filename too long
error: unable to create file basyx.aasregistry/basyx.aasregistry-service-basetests/src/main/resources/org/eclipse/digitaltwin/basyx/aasregistry/service/tests/whenUnregisterAssetAdministrationShellDescriptorById_thenReturnTrueAndEntryRemoved_events.json: Filename too long
error: unable to create file basyx.aasregistry/basyx.aasregistry-service-basetests/src/main/resources/org/eclipse/digitaltwin/basyx/aasregistry/service/tests/whenUnregisterSubmodelDescriptorAndWasPresent_thenElementIsRemoved_events.json: Filename too long
error: unable to create file basyx.aasrepository/basyx.aasrepository-feature-discovery-integration/src/main/java/org/eclipse/digitaltwin/basyx/aasrepository/feature/discoveryintegration/DiscoveryIntegrationAasRepositoryConfiguration.java: Filename too long
error: unable to create file basyx.aasrepository/basyx.aasrepository-feature-discovery-integration/src/test/java/org/eclipse/digitaltwin/basyx/aasrepository/feature/discoveryintegration/AuthorizedAasRepositoryDiscoveryIntegrationTest.java: Filename too long
error: unable to create file basyx.aasrepository/basyx.aasrepository-feature-discovery-integration/src/test/java/org/eclipse/digitaltwin/basyx/aasrepository/feature/discoveryintegration/DummyAasRepositoryDiscoveryIntegrationComponent.java: Filename too long
error: unable to create file basyx.aasrepository/basyx.aasrepository-feature-registry-integration/src/main/java/org/eclipse/digitaltwin/basyx/aasrepository/feature/registry/integration/RegistryIntegrationAasRepositoryConfiguration.java: Filename too long
error: unable to create file basyx.aasrepository/basyx.aasrepository-feature-registry-integration/src/test/java/org/eclipse/digitaltwin/basyx/aasrepository/feature/registry/integration/AasRepositoryRegistryLinkDescriptorGenerationTest.java: Filename too long
error: unable to create file basyx.conceptdescriptionrepository/basyx.conceptdescriptionrepository-backend-inmemory/src/main/java/org/eclipse/digitaltwin/basyx/conceptdescriptionrepository/backend/InMemoryConceptDescriptionBackend.java: Filename too long
error: unable to create file basyx.conceptdescriptionrepository/basyx.conceptdescriptionrepository-backend-inmemory/src/test/java/org/eclipse/digitaltwin/basyx/conceptdescriptionrepository/backend/TestInMemoryConceptDescriptionRepository.java: Filename too long
error: unable to create file basyx.conceptdescriptionrepository/basyx.conceptdescriptionrepository-backend-mongodb/src/main/java/org/eclipse/digitaltwin/basyx/conceptdescriptionrepository/backend/MongoDbConceptDescriptionBackendConfiguration.java: Filename too long
error: unable to create file basyx.conceptdescriptionrepository/basyx.conceptdescriptionrepository-backend-mongodb/src/test/java/org/eclipse/digitaltwin/basyx/conceptdescriptionrepository/backend/DummyConceptDescriptionRepositoryComponent.java: Filename too long
error: unable to create file basyx.conceptdescriptionrepository/basyx.conceptdescriptionrepository-backend-mongodb/src/test/java/org/eclipse/digitaltwin/basyx/conceptdescriptionrepository/backend/DummyConceptDescriptionRepositoryConfig.java: Filename too long
error: unable to create file basyx.conceptdescriptionrepository/basyx.conceptdescriptionrepository-backend-mongodb/src/test/java/org/eclipse/digitaltwin/basyx/conceptdescriptionrepository/backend/TestMongoDBConceptDescriptionRepository.java: Filename too long
error: unable to create file basyx.conceptdescriptionrepository/basyx.conceptdescriptionrepository-backend-mongodb/src/test/java/org/eclipse/digitaltwin/basyx/conceptdescriptionrepository/backend/TestMongoDBConceptDescriptionRepositoryPersistency.java: Filename too long
error: unable to create file basyx.conceptdescriptionrepository/basyx.conceptdescriptionrepository-core/src/test/java/org/eclipse/digitaltwin/basyx/conceptdescriptionrepository/core/ConceptDescriptionRepositoryPersistencyTestSuite.java: Filename too long
error: unable to create file basyx.conceptdescriptionrepository/basyx.conceptdescriptionrepository-feature-authorization/src/main/java/org/eclipse/digitaltwin/basyx/conceptdescriptionrepository/feature/authorization/AuthorizedConceptDescriptionRepository.java: Filename too long
error: unable to create file basyx.conceptdescriptionrepository/basyx.conceptdescriptionrepository-feature-authorization/src/main/java/org/eclipse/digitaltwin/basyx/conceptdescriptionrepository/feature/authorization/AuthorizedConceptDescriptionRepositoryConfiguration.java: Filename too long
error: unable to create file basyx.conceptdescriptionrepository/basyx.conceptdescriptionrepository-feature-authorization/src/main/java/org/eclipse/digitaltwin/basyx/conceptdescriptionrepository/feature/authorization/AuthorizedConceptDescriptionRepositoryFactory.java: Filename too long
error: unable to create file basyx.conceptdescriptionrepository/basyx.conceptdescriptionrepository-feature-authorization/src/main/java/org/eclipse/digitaltwin/basyx/conceptdescriptionrepository/feature/authorization/AuthorizedConceptDescriptionRepositoryFeature.java: Filename too long
error: unable to create file basyx.conceptdescriptionrepository/basyx.conceptdescriptionrepository-feature-authorization/src/main/java/org/eclipse/digitaltwin/basyx/conceptdescriptionrepository/feature/authorization/ConceptDescriptionTargetInformation.java: Filename too long
warning: unable to access 'basyx.conceptdescriptionrepository/basyx.conceptdescriptionrepository-feature-authorization/src/main/java/org/eclipse/digitaltwin/basyx/conceptdescriptionrepository/feature/authorization/rbac/.gitattributes': Filename too long
error: unable to create file basyx.conceptdescriptionrepository/basyx.conceptdescriptionrepository-feature-authorization/src/main/java/org/eclipse/digitaltwin/basyx/conceptdescriptionrepository/feature/authorization/rbac/ConceptDescriptionTargetPermissionVerifier.java: Filename too long
fatal: cannot create directory at 'basyx.conceptdescriptionrepository/basyx.conceptdescriptionrepository-feature-authorization/src/main/java/org/eclipse/digitaltwin/basyx/conceptdescriptionrepository/feature/authorization/rbac/backend': Filename too long
warning: Clone succeeded, but checkout failed.
You can inspect what was checked out with 'git status'
and retry with 'git restore --source=HEAD :/

🗂️ Used Asset Administration files (.aasx / .json / .xml)

Not applicable (issue occurs before build/runtime).


⚙️ BaSyx configuration

Not applicable.


🖥️ System Information

  • OS: Windows 10 / Windows 11
  • CPU architecture: x86_64
  • Git: Git for Windows (2.x)
  • Shell: Command Prompt / Git Bash
  • Browser: Chrome / Edge

🧩 Additional context

This issue seems related to Windows path length limitations rather than a defect in BaSyx itself.
However, documenting this limitation and possible workarounds (for example, enabling long paths in Windows or cloning into a short directory such as C:\src) in the README could help Windows users avoid this issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions