Ion push trying to read non-existent maven artifact

Attempting to push an ion and I get an error about not finding artifact ion-1.0.47.jar. I found a similar issue with @charliekilo having trouble with version 0.9.7. I tried the steps that @jaret suggested, and I can successfully reach/copy 0.9.7, but get errors with 1.0.47. To be clear, I’m not trying to download 1.0.47, I’m trying to push my ions and the error I get back references 1.0.47, so I attempted some troubleshooting steps in that forum post from 2018.

deps.edn:

{:mvn/repos {"datomic-cloud" {:url "s3://datomic-releases-1fc2183a/maven/releases"}}

 :aliases {
           :ion-dev {:deps {com.datomic/ion-dev {:mvn/version "1.0.352"}
                            com.datomic/client-cloud {:mvn/version "1.0.131"}
                            com.datomic/ion {:mvn/version "1.0.71"}}
                     :main-opts ["-m" "datomic.ion.dev"]}}}

command I’m trying to run:

clojure -M:ion-dev '{:op :push :creds-profile "byt-wrought-test" :region "us-west-2"}'

error:

{:command-failed
 "{:op :push :creds-profile \"byt-wrought-test\" :region \"us-west-2\"}",
 :causes
 ({:message
   "Failed to read artifact descriptor for com.datomic:ion-http-direct:jar:1.0.47",
   :class ArtifactDescriptorException}
  {:message
   "Could not transfer artifact com.datomic:ion-http-direct:pom:1.0.47 from/to datomic-cloud (s3://datomic-releases-1fc2183a/maven/releases): Unexpected error downloading artifact from datomic-releases-1fc2183a",
   :class ArtifactResolutionException}
  {:message
   "Could not transfer artifact com.datomic:ion-http-direct:pom:1.0.47 from/to datomic-cloud (s3://datomic-releases-1fc2183a/maven/releases): Unexpected error downloading artifact from datomic-releases-1fc2183a",
   :class ArtifactTransferException}
  {:message
   "Unexpected error downloading artifact from datomic-releases-1fc2183a",
   :class ExceptionInfo,
   :data
   {:bucket "datomic-releases-1fc2183a",
    :path
    "maven/releases/com/datomic/ion-http-direct/1.0.47/ion-http-direct-1.0.47.pom",
    :reason :cognitect.anomalies/fault}})}

Just trying things based on that earlier issue, this works:

aws --profile byt-wrangle-test s3 cp s3://datomic-releases-1fc2183a/maven/releases/com/datomic/ion/0.9.7/ion-0.9.7.jar .

download: s3://datomic-releases-1fc2183a/maven/releases/com/datomic/ion/0.9.7/ion-0.9.7.jar to ./ion-0.9.7.jar

but this does not:

aws --profile byt-wrangle-test s3 cp s3://datomic-releases-1fc2183a/maven/releases/com/datomic/ion/1.0.47/ion-1.0.47.jar .
fatal error: An error occurred (403) when calling the HeadObject operation: Forbidden

I’m very new to datomic-cloud, and I’m trying my best to carefully follow the instructions. This seems like it is not a permission issue, it’s a missing artifact issue?

I posted this over in ask.datomic.com

Howdy @wevrem what do you have in your ion-config.edn? Also can you check to see if you have something bringing in this dep via something like running:

clojure -A:ion-dev -Stree | grep ion-http-direct

grep’ing for ‘ion-http-direct’ – no result

My ion-config.edn file is:

{:app-name “wrought”
 :xforms []
 :allow […about 30 tx-fn and 2 query functions…]}

Your question made me wonder about my deps.edn file. I have com.datomic/ion and com.datomic/client-cloud in the :deps of the :ion-dev alias, but that is not how the instructions say to do it. I’m moving those to top-level deps and trying again.

I think it worked. I had to add some more permissions. (This sample policy from Mark Sto was very helpful in that regard). I got something back that was not a failure. It did list a bunch of dependency-conflicts. I’ll have to go look at those.

Great to hear that! Would love to gather any experience report you had following the docs if you have the time to share. If so, please shoot me an e-mail at support@datomic.com.

Thanks for your help. I will find some time to do that (meaning sharing an experience report). I’m still in the thick of it, I think. I’ve successfully deployed ions (yay!) but I’m now trying to run my app and connect as a client, and I’m running into the Jetty9 nonsense. (I have a memory of this same thing happening a year or so ago with the cognitect aws api.) I’m going to have to do some thinking and some work to switch my app over to http-kit so I can move forward. That is going to be some extra effort I wasn’t planning on.