diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/DatasourceServiceCEImpl.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/DatasourceServiceCEImpl.java index 4c1d64e7c1..b37bff4b0e 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/DatasourceServiceCEImpl.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/DatasourceServiceCEImpl.java @@ -705,14 +705,19 @@ public class DatasourceServiceCEImpl implements DatasourceServiceCE { HashMap storages = new HashMap<>(); datasource.setDatasourceStorages(storages); - - Mono trueEnvironmentIdMono = Mono.just(environmentId); + Mono trueEnvironmentIdMono; if (StringUtils.hasText(datasource.getWorkspaceId())) { trueEnvironmentIdMono = getTrueEnvironmentId(datasource.getWorkspaceId(), environmentId); } else if (StringUtils.hasText(datasource.getId())) { - trueEnvironmentIdMono = findById(datasourceDTO.getId(), datasourcePermission.getReadPermission()) + trueEnvironmentIdMono = findById(datasource.getId(), datasourcePermission.getReadPermission()) .flatMap(datasource1 -> getTrueEnvironmentId(datasource1.getWorkspaceId(), environmentId)); + } else { + if (!StringUtils.hasText(environmentId)) { + return Mono.error(new AppsmithException(AppsmithError.INVALID_DATASOURCE, FieldName.DATASOURCE, "Please provide valid metadata for datasource object")); + } + + trueEnvironmentIdMono = Mono.just(environmentId); } return trueEnvironmentIdMono