# Defold refuses to open without an internet connection

**URL:** <https://forum.defold.com/t/defold-refuses-to-open-without-an-internet-connection/71135>\
**Category:** Bugs\
**Created:** [June 21, 2022, 8:21am UTC](https://forum.defold.com/t/defold-refuses-to-open-without-an-internet-connection/71135 "2022-06-21T08:21:30Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Stale](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/stale/32/32618_2.png) [@Stale](https://forum.defold.com/u/Stale)\
**Post date:** [June 21, 2022, 8:21am UTC](https://forum.defold.com/t/defold-refuses-to-open-without-an-internet-connection/71135/1 "2022-06-21T08:21:30Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![mats.gisselson](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/mats.gisselson/32/3379_2.png) [@mats.gisselson](https://forum.defold.com/u/mats.gisselson)\
**Post date:** [June 21, 2022, 9:01am UTC](https://forum.defold.com/t/defold-refuses-to-open-without-an-internet-connection/71135/2 "2022-06-21T09:01:16Z")

</div>

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?

---

<div class="post-metadata">

**Author:** ![Lex](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/lex/32/23856_2.png) [@Lex](https://forum.defold.com/u/Lex)\
**Post date:** [June 21, 2022, 9:44am UTC](https://forum.defold.com/t/defold-refuses-to-open-without-an-internet-connection/71135/3 "2022-06-21T09:44:49Z")

</div>

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

```lua
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?

---

<div class="post-metadata">

**Author:** ![mats.gisselson](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/mats.gisselson/32/3379_2.png) [@mats.gisselson](https://forum.defold.com/u/mats.gisselson)\
**Post date:** [June 21, 2022, 10:21am UTC](https://forum.defold.com/t/defold-refuses-to-open-without-an-internet-connection/71135/4 "2022-06-21T10:21:55Z")

</div>

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](https://defold.com/extension-spine/#migration-guide).

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

---

<div class="post-metadata">

**Author:** ![Stale](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/stale/32/32618_2.png) [@Stale](https://forum.defold.com/u/Stale)\
**Post date:** [June 21, 2022, 9:36pm UTC](https://forum.defold.com/t/defold-refuses-to-open-without-an-internet-connection/71135/5 "2022-06-21T21:36:05Z")

</div>

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)

---

<div class="post-metadata">

**Author:** ![mats.gisselson](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/mats.gisselson/32/3379_2.png) [@mats.gisselson](https://forum.defold.com/u/mats.gisselson)\
**Post date:** [June 22, 2022, 7:35am UTC](https://forum.defold.com/t/defold-refuses-to-open-without-an-internet-connection/71135/6 "2022-06-22T07:35:52Z")

</div>

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. 🙂

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.
