Defold refuses to open without an internet connection

I use the steam version of defold, and need to use it without internet in my school, I was able to open it once but it crashed immediately and now refuses to boot up, I’ve tried other steam games, this is not the case

Steps to reproduce the behavior:
Turn off internet
Open defold
Playtest
Crashes whole of defold
Reopen
Doesn’t reopen

To reopen without error

**Defold
Most recent version, can’t be sure as can’t open and without internet

Platforms (REQUIRED):
Windows 10

The Defold editor should not require an Internet connection to run, but it will need Internet to download project templates, update library dependencies, and build engine extensions, etc. So depending on how you use it, not having an Internet connection can be limiting.

That said, the editor shouldn’t refuse to start just because you don’t have an active Internet connection. That’s not normal. Could you attach the latest editor2 log files from C:\Users\your-username\AppData\Local\Defold - there might be some information in there. What if you run Defold.exe from a command-prompt? Does it print some additional information?

2 Likes

Piggybacking on this topic, my editor crashes when opening it.

2022-06-21 12:30:28.818 INFO  default    editor.updater - {:line 299, :message "Checking for updates", :url "https://d.defold.com/editor2/channels/editor-alpha/update-v3.json"}
    2022-06-21 12:30:30.163 INFO  default    editor.updater - {:line 305, :message "New version found", :sha1 "c945dcfc32fff38c0826bb34a58446dba45d7dea"}
    2022-06-21 12:30:55.519 WARN  default    editor.defold-project - {:line 86, :msg "Unable to load resource '/game/race/main.collection'"}
    java.lang.IllegalArgumentException: No implementation of method: :resource-type of protocol: #'editor.resource/Resource found for class: nil
    	at clojure.core$_cache_protocol_fn.invokeStatic(core_deftype.clj:583)
    	at editor.resource$fn__9613$G__9505__9618.invoke(resource.clj:35)
    	at clojure.core$comp$fn__5792.invoke(core.clj:2569)
    	at editor.game_object$add_embedded_component.invokeStatic(game_object.clj:529)
    	at editor.game_object$load_game_object$iter__50084__50088$fn__50089$fn__50090.invoke(game_object.clj:602)
    	at editor.game_object$load_game_object$iter__50084__50088$fn__50089.invoke(game_object.clj:599)
    	at clojure.lang.LazySeq.sval(LazySeq.java:42)
    	at clojure.lang.LazySeq.seq(LazySeq.java:58)
    	at clojure.lang.RT.seq(RT.java:531)
    	at clojure.core$seq__5387.invokeStatic(core.clj:137)
    	at clojure.core$concat$fn__5478.invoke(core.clj:725)
    	at clojure.lang.LazySeq.sval(LazySeq.java:42)
    	at clojure.lang.LazySeq.seq(LazySeq.java:51)
    	at clojure.lang.RT.seq(RT.java:531)
    	at clojure.core$seq__5387.invokeStatic(core.clj:137)
    	at clojure.core$concat$cat__5480$fn__5481.invoke(core.clj:734)
    	at clojure.lang.LazySeq.sval(LazySeq.java:42)
    	at clojure.lang.LazySeq.seq(LazySeq.java:58)
    	at clojure.lang.RT.seq(RT.java:531)
    	at clojure.core$seq__5387.invokeStatic(core.clj:137)
    	at clojure.core$map$fn__5851.invoke(core.clj:2746)
    	at clojure.lang.LazySeq.sval(LazySeq.java:42)
    	at clojure.lang.LazySeq.seq(LazySeq.java:51)
    	at clojure.lang.ChunkedCons.chunkedNext(ChunkedCons.java:59)
    	at clojure.lang.ChunkedCons.next(ChunkedCons.java:43)
    	at clojure.lang.RT.next(RT.java:709)
    	at clojure.core$next__5371.invokeStatic(core.clj:64)
    	at clojure.core$concat$cat__5480$fn__5481.invoke(core.clj:742)
    	at clojure.lang.LazySeq.sval(LazySeq.java:42)
    	at clojure.lang.LazySeq.seq(LazySeq.java:51)
    	at clojure.lang.RT.seq(RT.java:531)
    	at clojure.core$seq__5387.invokeStatic(core.clj:137)
    	at clojure.core$concat$cat__5480$fn__5481.invoke(core.clj:734)
    	at clojure.lang.LazySeq.sval(LazySeq.java:42)
    	at clojure.lang.LazySeq.seq(LazySeq.java:51)
    	at clojure.lang.RT.seq(RT.java:531)
    	at clojure.core$seq__5387.invokeStatic(core.clj:137)
    	at clojure.core$filter$fn__5878.invoke(core.clj:2809)
    	at clojure.lang.LazySeq.sval(LazySeq.java:42)
    	at clojure.lang.LazySeq.seq(LazySeq.java:51)
    	at clojure.lang.RT.seq(RT.java:531)
    	at clojure.core$seq__5387.invokeStatic(core.clj:137)
    	at clojure.core$filter$fn__5878.invoke(core.clj:2809)
    	at clojure.lang.LazySeq.sval(LazySeq.java:42)
    	at clojure.lang.LazySeq.seq(LazySeq.java:58)
    	at clojure.lang.RT.seq(RT.java:531)
    	at clojure.core$seq__5387.invokeStatic(core.clj:137)
    	at clojure.core$map$fn__5851.invoke(core.clj:2746)
    	at clojure.lang.LazySeq.sval(LazySeq.java:42)
    	at clojure.lang.LazySeq.seq(LazySeq.java:51)
    	at clojure.lang.Cons.next(Cons.java:39)
    	at clojure.lang.RT.next(RT.java:709)
    	at clojure.core$next__5371.invokeStatic(core.clj:64)
    	at clojure.core.protocols$fn__8144.invokeStatic(protocols.clj:169)
    	at clojure.core.protocols$fn__8144.invoke(protocols.clj:124)
    	at clojure.core.protocols$fn__8099$G__8094__8108.invoke(protocols.clj:19)
    	at clojure.core.protocols$seq_reduce.invokeStatic(protocols.clj:31)
    	at clojure.core.protocols$fn__8131.invokeStatic(protocols.clj:75)
    	at clojure.core.protocols$fn__8131.invoke(protocols.clj:75)
    	at clojure.core.protocols$fn__8073$G__8068__8086.invoke(protocols.clj:13)
    	at clojure.core$reduce.invokeStatic(core.clj:6828)
    	at clojure.core$into.invokeStatic(core.clj:6895)
    	at editor.collection$load_collection.invokeStatic(collection.clj:816)
    	at editor.collection$load_collection.invoke(collection.clj:806)
    	at editor.resource_node$register_ddf_resource_type$fn__15174.invoke(resource_node.clj:130)
    	at editor.defold_project$load_registered_resource_node.invokeStatic(defold_project.clj:62)
    	at editor.defold_project$load_node.invokeStatic(defold_project.clj:82)
    	at editor.defold_project$load_resource_nodes$iter__17265__17269$fn__17270$fn__17271.invoke(defold_project.clj:172)
    	at editor.defold_project$load_resource_nodes$iter__17265__17269$fn__17270.invoke(defold_project.clj:163)
    	at clojure.lang.LazySeq.sval(LazySeq.java:42)
    	at clojure.lang.LazySeq.seq(LazySeq.java:51)
    	at clojure.lang.ChunkedCons.chunkedNext(ChunkedCons.java:59)
    	at clojure.lang.ChunkedCons.next(ChunkedCons.java:43)
    	at clojure.lang.RT.next(RT.java:709)
    	at clojure.core$next__5371.invokeStatic(core.clj:64)
    	at clojure.core$dorun.invokeStatic(core.clj:3142)
    	at clojure.core$doall.invokeStatic(core.clj:3148)
    	at editor.defold_project$load_resource_nodes.invokeStatic(defold_project.clj:163)
    	at editor.defold_project$load_nodes_BANG_.invokeStatic(defold_project.clj:176)
    	at editor.defold_project$load_project$fn__17345.invoke(defold_project.clj:230)
    	at clojure.lang.AFn.applyToHelper(AFn.java:152)
    	at clojure.lang.AFn.applyTo(AFn.java:144)
    	at clojure.core$apply.invokeStatic(core.clj:665)
    	at clojure.core$with_bindings_STAR_.invokeStatic(core.clj:1973)
    	at clojure.core$with_bindings_STAR_.doInvoke(core.clj:1973)
    	at clojure.lang.RestFn.invoke(RestFn.java:425)
    	at editor.defold_project$load_project.invokeStatic(defold_project.clj:230)
    	at editor.defold_project$open_project_BANG_.invokeStatic(defold_project.clj:779)
    	at editor.boot_open_project$open_project.invokeStatic(boot_open_project.clj:401)
    	at editor.boot_open_project$open_project.invoke(boot_open_project.clj:399)
    	at clojure.lang.AFn.applyToHelper(AFn.java:171)
    	at clojure.lang.AFn.applyTo(AFn.java:144)
    	at clojure.core$apply.invokeStatic(core.clj:665)
    	at editor.boot$open_project_with_progress_dialog$fn__87689.invoke(boot.clj:58)
    	at editor.dialogs$make_load_project_dialog$fn__25084$fn__25087.invoke(dialogs.clj:424)
    	at clojure.core$binding_conveyor_fn$fn__5739.invoke(core.clj:2030)
    	at clojure.lang.AFn.call(AFn.java:18)
    	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    	at java.base/java.lang.Thread.run(Thread.java:834)
    2022-06-21 12:30:55.787 WARN  default    editor.defold-project - {:line 86, :msg "Unable to load resource '/game/market/market.collection'"}
    java.lang.IllegalArgumentException: No implementation of method: :resource-type of protocol: #'editor.resource/Resource found for class: nil
    	at clojure.core$_cache_protocol_fn.invokeStatic(core_deftype.clj:583)
    	at editor.resource$fn__9613$G__9505__9618.invoke(resource.clj:35)
    	at clojure.core$comp$fn__5792.invoke(core.clj:2569)
    	at editor.game_object$add_embedded_component.invokeStatic(game_object.clj:529)
    	at editor.game_object$load_game_object$iter__50084__50088$fn__50089$fn__50090.invoke(game_object.clj:602)
    	at editor.game_object$load_game_object$iter__50084__50088$fn__50089.invoke(game_object.clj:599)
    	at clojure.lang.LazySeq.sval(LazySeq.java:42)
    	at clojure.lang.LazySeq.seq(LazySeq.java:58)
    	at clojure.lang.RT.seq(RT.java:531)
    	at clojure.core$seq__5387.invokeStatic(core.clj:137)
    	at clojure.core$concat$fn__5478.invoke(core.clj:725)
    	at clojure.lang.LazySeq.sval(LazySeq.java:42)
    	at clojure.lang.LazySeq.seq(LazySeq.java:51)
    	at clojure.lang.RT.seq(RT.java:531)
    	at clojure.core$seq__5387.invokeStatic(core.clj:137)
    	at clojure.core$concat$cat__5480$fn__5481.invoke(core.clj:734)
    	at clojure.lang.LazySeq.sval(LazySeq.java:42)
    	at clojure.lang.LazySeq.seq(LazySeq.java:58)
    	at clojure.lang.RT.seq(RT.java:531)
    	at clojure.core$seq__5387.invokeStatic(core.clj:137)
    	at clojure.core$map$fn__5851.invoke(core.clj:2746)
    	at clojure.lang.LazySeq.sval(LazySeq.java:42)
    	at clojure.lang.LazySeq.seq(LazySeq.java:51)
    	at clojure.lang.ChunkedCons.chunkedNext(ChunkedCons.java:59)
    	at clojure.lang.ChunkedCons.next(ChunkedCons.java:43)
    	at clojure.lang.RT.next(RT.java:709)
    	at clojure.core$next__5371.invokeStatic(core.clj:64)
    	at clojure.core$concat$cat__5480$fn__5481.invoke(core.clj:742)
    	at clojure.lang.LazySeq.sval(LazySeq.java:42)
    	at clojure.lang.LazySeq.seq(LazySeq.java:51)
    	at clojure.lang.RT.seq(RT.java:531)
    	at clojure.core$seq__5387.invokeStatic(core.clj:137)
    	at clojure.core$concat$cat__5480$fn__5481.invoke(core.clj:734)
    	at clojure.lang.LazySeq.sval(LazySeq.java:42)
    	at clojure.lang.LazySeq.seq(LazySeq.java:51)
    	at clojure.lang.RT.seq(RT.java:531)
    	at clojure.core$seq__5387.invokeStatic(core.clj:137)
    	at clojure.core$filter$fn__5878.invoke(core.clj:2809)
    	at clojure.lang.LazySeq.sval(LazySeq.java:42)
    	at clojure.lang.LazySeq.seq(LazySeq.java:51)
    	at clojure.lang.RT.seq(RT.java:531)
    	at clojure.core$seq__5387.invokeStatic(core.clj:137)
    	at clojure.core$filter$fn__5878.invoke(core.clj:2809)
    	at clojure.lang.LazySeq.sval(LazySeq.java:42)
    	at clojure.lang.LazySeq.seq(LazySeq.java:58)
    	at clojure.lang.RT.seq(RT.java:531)
    	at clojure.core$seq__5387.invokeStatic(core.clj:137)
    	at clojure.core$map$fn__5851.invoke(core.clj:2746)
    	at clojure.lang.LazySeq.sval(LazySeq.java:42)
    	at clojure.lang.LazySeq.seq(LazySeq.java:51)
    	at clojure.lang.Cons.next(Cons.java:39)
    	at clojure.lang.RT.next(RT.java:709)
    	at clojure.core$next__5371.invokeStatic(core.clj:64)
    	at clojure.core.protocols$fn__8144.invokeStatic(protocols.clj:169)
    	at clojure.core.protocols$fn__8144.invoke(protocols.clj:124)
    	at clojure.core.protocols$fn__8099$G__8094__8108.invoke(protocols.clj:19)
    	at clojure.core.protocols$seq_reduce.invokeStatic(protocols.clj:31)
    	at clojure.core.protocols$fn__8131.invokeStatic(protocols.clj:75)
    	at clojure.core.protocols$fn__8131.invoke(protocols.clj:75)
    	at clojure.core.protocols$fn__8073$G__8068__8086.invoke(protocols.clj:13)
    	at clojure.core$reduce.invokeStatic(core.clj:6828)
    	at clojure.core$into.invokeStatic(core.clj:6895)
    	at editor.collection$load_collection.invokeStatic(collection.clj:816)
    	at editor.collection$load_collection.invoke(collection.clj:806)
    	at editor.resource_node$register_ddf_resource_type$fn__15174.invoke(resource_node.clj:130)
    	at editor.defold_project$load_registered_resource_node.invokeStatic(defold_project.clj:62)
    	at editor.defold_project$load_node.invokeStatic(defold_project.clj:82)
    	at editor.defold_project$load_resource_nodes$iter__17265__17269$fn__17270$fn__17271.invoke(defold_project.clj:172)
    	at editor.defold_project$load_resource_nodes$iter__17265__17269$fn__17270.invoke(defold_project.clj:163)
    	at clojure.lang.LazySeq.sval(LazySeq.java:42)
    	at clojure.lang.LazySeq.seq(LazySeq.java:51)
    	at clojure.lang.ChunkedCons.chunkedNext(ChunkedCons.java:59)
    	at clojure.lang.ChunkedCons.next(ChunkedCons.java:43)
    	at clojure.lang.RT.next(RT.java:709)
    	at clojure.core$next__5371.invokeStatic(core.clj:64)
    	at clojure.core$dorun.invokeStatic(core.clj:3142)
    	at clojure.core$doall.invokeStatic(core.clj:3148)
    	at editor.defold_project$load_resource_nodes.invokeStatic(defold_project.clj:163)
    	at editor.defold_project$load_nodes_BANG_.invokeStatic(defold_project.clj:176)
    	at editor.defold_project$load_project$fn__17345.invoke(defold_project.clj:230)
    	at clojure.lang.AFn.applyToHelper(AFn.java:152)
    	at clojure.lang.AFn.applyTo(AFn.java:144)
    	at clojure.core$apply.invokeStatic(core.clj:665)
    	at clojure.core$with_bindings_STAR_.invokeStatic(core.clj:1973)
    	at clojure.core$with_bindings_STAR_.doInvoke(core.clj:1973)
    	at clojure.lang.RestFn.invoke(RestFn.java:425)
    	at editor.defold_project$load_project.invokeStatic(defold_project.clj:230)
    	at editor.defold_project$open_project_BANG_.invokeStatic(defold_project.clj:779)
    	at editor.boot_open_project$open_project.invokeStatic(boot_open_project.clj:401)
    	at editor.boot_open_project$open_project.invoke(boot_open_project.clj:399)
    	at clojure.lang.AFn.applyToHelper(AFn.java:171)
    	at clojure.lang.AFn.applyTo(AFn.java:144)
    	at clojure.core$apply.invokeStatic(core.clj:665)
    	at editor.boot$open_project_with_progress_dialog$fn__87689.invoke(boot.clj:58)
    	at editor.dialogs$make_load_project_dialog$fn__25084$fn__25087.invoke(dialogs.clj:424)
    	at clojure.core$binding_conveyor_fn$fn__5739.invoke(core.clj:2030)
    	at clojure.lang.AFn.call(AFn.java:18)
    	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    	at java.base/java.lang.Thread.run(Thread.java:834)
    

Any clue where this could come from?

I believe that is an unrelated error. That looks like the error you’d get if your project contains embedded legacy Spine components, but you did not update the project to use the extenstion-spine library and perform the required migration steps.

We’re working on a fix to have the editor show a better error message to that effect.

4 Likes

I managed to get it rerunning by verifying the integrity of the game cache but now I’m getting this error every time I attempt to run my game

java.util.concurrent.ExecutionException: java.lang.AssertionError: Assert failed: (bt/content-hash? content-hash)
java.lang.AssertionError: Assert failed: (bt/content-hash? content-hash)

I’m not sure what you mean by “verifying the integrity of the game cache”, but I’m glad you got the editor working again. :slightly_smiling_face:

Does it mention a path to a specific resource in the error message? There should be something like “Build target has invalid content-hash: (path-to-resource)”. I’m mostly interested in the file extension so that I can check the specific type of resource that is being built.

2 Likes