# Event trigger when texture does not load?

**URL:** <https://forum.babylonjs.com/t/event-trigger-when-texture-does-not-load/24042>\
**Category:** Questions\
**Tags:** material\
**Created:** [September 24, 2021, 12:15am UTC](https://forum.babylonjs.com/t/event-trigger-when-texture-does-not-load/24042 "2021-09-24T00:15:00Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![Michael\_Scherotter1](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/michael_scherotter1/32/16678_2.png) [@Michael\_Scherotter1](https://forum.babylonjs.com/u/Michael_Scherotter1)\
**Post date:** [September 24, 2021, 12:15am UTC](https://forum.babylonjs.com/t/event-trigger-when-texture-does-not-load/24042/1 "2021-09-24T00:15:00Z")

</div>

Is there an event that I can watch for when a texture does not load (HTTP 404)?

---

<div class="post-metadata">

**Author:** ![jelster](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/jelster/32/25881_2.png) [@jelster](https://forum.babylonjs.com/u/jelster)\
**Post date:** [September 24, 2021, 4:49am UTC](https://forum.babylonjs.com/t/event-trigger-when-texture-does-not-load/24042/2 "2021-09-24T04:49:32Z")

</div>

How are you loading the texture? The AssetManager loads assets async, and so you would have the promise rejection or catch handler you might use.

If you’re just doing `new Texture(…)` you might consider subscribing to the appropriate XHR event, as textures are loaded via an XHR call IIRC

---

<div class="post-metadata">

**Author:** ![sebavan](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/sebavan/32/57_2.png) [@sebavan](https://forum.babylonjs.com/u/sebavan)\
**Post date:** [September 24, 2021, 2:12pm UTC](https://forum.babylonjs.com/t/event-trigger-when-texture-does-not-load/24042/3 "2021-09-24T14:12:58Z")

</div>

There is a onError callback on the texture constructor that you can use for this 🙂

---

<div class="post-metadata">

**Author:** ![jelster](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/jelster/32/25881_2.png) [@jelster](https://forum.babylonjs.com/u/jelster)\
**Post date:** [September 24, 2021, 3:42pm UTC](https://forum.babylonjs.com/t/event-trigger-when-texture-does-not-load/24042/4 "2021-09-24T15:42:37Z")

</div>

Or you could take that approach, which is much more simple, reasonable, and effective! 👍😁

---

<div class="post-metadata">

**Author:** ![Michael\_Scherotter1](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/michael_scherotter1/32/16678_2.png) [@Michael\_Scherotter1](https://forum.babylonjs.com/u/Michael_Scherotter1)\
**Post date:** [September 24, 2021, 6:02pm UTC](https://forum.babylonjs.com/t/event-trigger-when-texture-does-not-load/24042/5 "2021-09-24T18:02:23Z")

</div>

I am loading the .babylon file which references many textures - I would like to know which ones fail.

---

<div class="post-metadata">

**Author:** ![sebavan](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/sebavan/32/57_2.png) [@sebavan](https://forum.babylonjs.com/u/sebavan)\
**Post date:** [September 24, 2021, 6:47pm UTC](https://forum.babylonjs.com/t/event-trigger-when-texture-does-not-load/24042/6 "2021-09-24T18:47:05Z")

</div>

Unfortunately we do not support this at the moment ☹ Would gladly accept a PR though ?

---

<div class="post-metadata">

**Author:** ![Michael\_Scherotter1](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/michael_scherotter1/32/16678_2.png) [@Michael\_Scherotter1](https://forum.babylonjs.com/u/Michael_Scherotter1)\
**Post date:** [September 24, 2021, 8:57pm UTC](https://forum.babylonjs.com/t/event-trigger-when-texture-does-not-load/24042/7 "2021-09-24T20:57:10Z")

</div>

Once the scene loads, can I iterate through all the textures to find out if any did not load?

```
static handleInvalidImages(scene:BABYLON.Scene){
    scene.textures.forEach((texture: BABYLON.BaseTexture)=>{
         // ❓ what do I do here, attach an event handler or check a value?
    });
}
```

---

<div class="post-metadata">

**Author:** ![sebavan](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/sebavan/32/57_2.png) [@sebavan](https://forum.babylonjs.com/u/sebavan)\
**Post date:** [September 24, 2021, 9:07pm UTC](https://forum.babylonjs.com/t/event-trigger-when-texture-does-not-load/24042/8 "2021-09-24T21:07:56Z")

</div>

You can check texture.loadingError and texture.errorObject

---

<div class="post-metadata">

**Author:** ![Michael\_Scherotter1](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/michael_scherotter1/32/16678_2.png) [@Michael\_Scherotter1](https://forum.babylonjs.com/u/Michael_Scherotter1)\
**Post date:** [September 24, 2021, 9:12pm UTC](https://forum.babylonjs.com/t/event-trigger-when-texture-does-not-load/24042/9 "2021-09-24T21:12:43Z")

</div>

I’m not finding those properties in TypeScript.

---

<div class="post-metadata">

**Author:** ![sebavan](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/sebavan/32/57_2.png) [@sebavan](https://forum.babylonjs.com/u/sebavan)\
**Post date:** [September 24, 2021, 9:14pm UTC](https://forum.babylonjs.com/t/event-trigger-when-texture-does-not-load/24042/10 "2021-09-24T21:14:48Z")

</div>

This was added only a month ago so it is only available in preview.

---

<div class="post-metadata">

**Author:** ![Michael\_Scherotter1](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/michael_scherotter1/32/16678_2.png) [@Michael\_Scherotter1](https://forum.babylonjs.com/u/Michael_Scherotter1)\
**Post date:** [September 24, 2021, 9:17pm UTC](https://forum.babylonjs.com/t/event-trigger-when-texture-does-not-load/24042/11 "2021-09-24T21:17:33Z")

</div>

so no way to check with BJS 4.2, right?

---

<div class="post-metadata">

**Author:** ![sebavan](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/sebavan/32/57_2.png) [@sebavan](https://forum.babylonjs.com/u/sebavan)\
**Post date:** [September 24, 2021, 9:33pm UTC](https://forum.babylonjs.com/t/event-trigger-when-texture-does-not-load/24042/12 "2021-09-24T21:33:06Z")

</div>

nope

---

<div class="post-metadata">

**Author:** ![Michael\_Scherotter1](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/michael_scherotter1/32/16678_2.png) [@Michael\_Scherotter1](https://forum.babylonjs.com/u/Michael_Scherotter1)\
**Post date:** [September 24, 2021, 9:41pm UTC](https://forum.babylonjs.com/t/event-trigger-when-texture-does-not-load/24042/13 "2021-09-24T21:41:51Z")

</div>

is there any way to replace the default red and black checkerboard pattern?

---

<div class="post-metadata">

**Author:** ![sebavan](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/sebavan/32/57_2.png) [@sebavan](https://forum.babylonjs.com/u/sebavan)\
**Post date:** [September 24, 2021, 10:24pm UTC](https://forum.babylonjs.com/t/event-trigger-when-texture-does-not-load/24042/14 "2021-09-24T22:24:09Z")

</div>

You can set BABYLON.Tools.FallbackTexture = a base 64 endoded image as we do here:[Babylon.js/tools.ts at master · BabylonJS/Babylon.js · GitHub](https://github.com/BabylonJS/Babylon.js/blob/master/src/Misc/tools.ts#L1355)
