diff --git a/wsmaster/che-core-api-factory/src/main/java/org/eclipse/che/api/factory/server/urlfactory/URLFactoryBuilder.java b/wsmaster/che-core-api-factory/src/main/java/org/eclipse/che/api/factory/server/urlfactory/URLFactoryBuilder.java index cd95fb12f4..f35564a220 100644 --- a/wsmaster/che-core-api-factory/src/main/java/org/eclipse/che/api/factory/server/urlfactory/URLFactoryBuilder.java +++ b/wsmaster/che-core-api-factory/src/main/java/org/eclipse/che/api/factory/server/urlfactory/URLFactoryBuilder.java @@ -30,6 +30,7 @@ import javax.inject.Singleton; import org.eclipse.che.api.core.ApiException; import org.eclipse.che.api.core.BadRequestException; +import org.eclipse.che.api.factory.server.scm.exception.ScmUnauthorizedException; import org.eclipse.che.api.factory.server.urlfactory.RemoteFactoryUrl.DevfileLocation; import org.eclipse.che.api.factory.shared.dto.FactoryDevfileV2Dto; import org.eclipse.che.api.factory.shared.dto.FactoryDto; @@ -131,7 +132,9 @@ public Optional createFactoryFromDevfile( continue; } catch (DevfileException e) { LOG.debug("Unexpected devfile exception: {}", e.getMessage()); - throw new ApiException(e.getMessage()); + throw e.getCause() instanceof ScmUnauthorizedException + ? toApiException(e, location) + : new ApiException(e.getMessage()); } if (isNullOrEmpty(devfileYamlContent)) { return Optional.empty(); diff --git a/wsmaster/che-core-api-factory/src/test/java/org/eclipse/che/api/factory/server/urlfactory/URLFactoryBuilderTest.java b/wsmaster/che-core-api-factory/src/test/java/org/eclipse/che/api/factory/server/urlfactory/URLFactoryBuilderTest.java index 1c9ea46bb2..062d0e9820 100644 --- a/wsmaster/che-core-api-factory/src/test/java/org/eclipse/che/api/factory/server/urlfactory/URLFactoryBuilderTest.java +++ b/wsmaster/che-core-api-factory/src/test/java/org/eclipse/che/api/factory/server/urlfactory/URLFactoryBuilderTest.java @@ -451,7 +451,7 @@ public String location() { } catch (ApiException e) { assertTrue(e.getClass().isAssignableFrom(expectedClass)); assertEquals(e.getMessage(), expectedMessage); - if (e.getServiceError() instanceof ExtendedError) + if ("SCM Authentication required".equals(e.getMessage())) assertEquals(((ExtendedError) e.getServiceError()).getAttributes(), expectedAttributes); } }