Unable to push ion since yesterday


#1

Hi, after running the deploy command, it gets stuck while downloading com.datomic/java-io:0.1.11 from the datomic-cloud repo. This is happening since yesterday, before that I had successfuly deployed many times. Any ideas?

Thanks in advance!


#2

Sorry about the little context, wrote it on mobile.

My deps.edn is as follows:

{:paths ["src" "resources"]
 :deps
 {org.clojure/clojure {:mvn/version "1.9.0"}
  com.datomic/client-cloud {:mvn/version "0.8.56"}
 ;; pedestal 0.5.4, component 0.3.2, transit-clj 0.8.309 
 }
 :mvn/repos
 {"datomic-cloud" {:url "s3://datomic-releases-1fc2183a/maven/releases"}}
 :aliases
 {:dev
  {:extra-deps
   {com.datomic/ion-dev {:mvn/version "0.9.175"}}}}}

And my ion-config.edn:

{:allow [some.tx-function/foo]
 :app-name "{my app}"}

#3

Hi @Crowl it looks like you’re missing the com.datomic/ion library.

I copied your deps and added the ion lib and was able to successfully deploy:

13 {:paths ["src" "resources"]
 14  :deps
 15   {org.clojure/clojure {:mvn/version "1.9.0"}
 16     com.datomic/client-cloud {:mvn/version "0.8.56"}
 17     com.datomic/ion {:mvn/version "0.9.16"}
 18      ;; pedestal 0.5.4, component 0.3.2, transit-clj 0.8.309
 19       }
 20        :mvn/repos
 21         {"datomic-cloud" {:url "s3://datomic-releases-1fc2183a/maven/releases"}}
 22          :aliases
 23           {:dev
 24             {:extra-deps
 25                {com.datomic/ion-dev {:mvn/version "0.9.175"}}}}}

FYI: To troubleshoot a failed deployment I went to the CloudWatch Logs for my datomic-my-app-name group. There I was able to see IonLambdaDispatcherFailedtoStart messages and see that the classpath was missing the api_gateway.clj from the following error:

 "Msg": "IonLambdaDispatcherFailedtoStart",
    "Ex": {
        "Cause": "Could not locate datomic/ion/lambda/api_gateway__init.class or datomic/ion/lambda/api_gateway.clj on classpath. Please check that namespaces with dashes use underscores in the Clojure file name.",
        "Via": [
            {
                "Type": "clojure.lang.Compiler$CompilerException",
                "Message": "java.io.FileNotFoundException: Could not locate datomic/ion/lambda/api_gateway__init.class or datomic/ion/lambda/api_gateway.clj on classpath. Please check that namespaces with dashes use underscores in the Clojure file name., compiling:(datomic/ion/starter.clj:1:1)",
                "At": [
                    "clojure.lang.Compiler",
                    "load",
                    "Compiler.java",
                    7526
                ]
            },........

You will also see a datomic.cluster-nodeV-main failed exception


#4

Hi @jaret, thank you for your response. I am not using the com.datomic/ion library since I’m just deploying transaction functions, not exposing them via lambdas. Is it still necessary to include the library?


#5

Yes it is still necessary to include the ion library for an ion deployment.

https://docs.datomic.com/cloud/ions/ions-reference.html#requirements
https://docs.datomic.com/cloud/ions/ions-reference.html#deps-edn