<p dir="auto"><strong>Describe the bug</strong></p>
<ul dir="auto">
<li>An err is thrown when i call <code class="notranslate">render()</code> on <code class="notranslate">EffectComposer{}</code>  which is added a <code class="notranslate">SSRPass</code>.</li>
<li>The err only occurs when my scene contains both <code class="notranslate">Mesh</code>s and <code class="notranslate">InstancedMesh</code>s.</li>
</ul>
<p dir="auto"><strong>To Reproduce</strong></p>
<p dir="auto">Steps to reproduce the behavior:</p>
<ol dir="auto">
<li>add 1 instanced mesh and 1 regular mesh to then scene</li>
<li>make an effect composer; add a RenderPass .. followed by a SSRPass.</li>
<li>call <code class="notranslate">composer.render()</code> in animation loop.</li>
<li>bring up devtools, it shows</li>
</ol>
<blockquote>
<p dir="auto">Uncaught TypeError: can't access property "isInterleavedBufferAttribute", attribute is undefined</p>
</blockquote>
<p dir="auto">stacktrace:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="    get https://cdn.jsdelivr.net/gh/mrdoob/three.js@dev/build/three.module.js:12445
    setupVertexAttributes https://cdn.jsdelivr.net/gh/mrdoob/three.js@dev/build/three.module.js:14100
    setup https://cdn.jsdelivr.net/gh/mrdoob/three.js@dev/build/three.module.js:13770
    renderBufferDirect https://cdn.jsdelivr.net/gh/mrdoob/three.js@dev/build/three.module.js:23733
    renderObject https://cdn.jsdelivr.net/gh/mrdoob/three.js@dev/build/three.module.js:24269
    renderObjects https://cdn.jsdelivr.net/gh/mrdoob/three.js@dev/build/three.module.js:24242
    render https://cdn.jsdelivr.net/gh/mrdoob/three.js@dev/build/three.module.js:24025
    renderOverride https://cdn.jsdelivr.net/gh/mrdoob/three.js@dev/examples/jsm/postprocessing/SSRPass.js:577
    render https://cdn.jsdelivr.net/gh/mrdoob/three.js@dev/examples/jsm/postprocessing/SSRPass.js:396
    render https://cdn.jsdelivr.net/gh/mrdoob/three.js@dev/examples/jsm/postprocessing/EffectComposer.js:150
    &lt;anonymous&gt; https://fiddle.jshell.net/_display/?editor_console=true:196
    onAnimationFrame https://cdn.jsdelivr.net/gh/mrdoob/three.js@dev/build/three.module.js:23897
    onAnimationFrame https://cdn.jsdelivr.net/gh/mrdoob/three.js@dev/build/three.module.js:12286
    start https://cdn.jsdelivr.net/gh/mrdoob/three.js@dev/build/three.module.js:12299
    setAnimationLoop https://cdn.jsdelivr.net/gh/mrdoob/three.js@dev/build/three.module.js:23911
    &lt;anonymous&gt; https://fiddle.jshell.net/_display/?editor_console=true:195"><pre class="notranslate"><code class="notranslate">    get https://cdn.jsdelivr.net/gh/mrdoob/three.js@dev/build/three.module.js:12445
    setupVertexAttributes https://cdn.jsdelivr.net/gh/mrdoob/three.js@dev/build/three.module.js:14100
    setup https://cdn.jsdelivr.net/gh/mrdoob/three.js@dev/build/three.module.js:13770
    renderBufferDirect https://cdn.jsdelivr.net/gh/mrdoob/three.js@dev/build/three.module.js:23733
    renderObject https://cdn.jsdelivr.net/gh/mrdoob/three.js@dev/build/three.module.js:24269
    renderObjects https://cdn.jsdelivr.net/gh/mrdoob/three.js@dev/build/three.module.js:24242
    render https://cdn.jsdelivr.net/gh/mrdoob/three.js@dev/build/three.module.js:24025
    renderOverride https://cdn.jsdelivr.net/gh/mrdoob/three.js@dev/examples/jsm/postprocessing/SSRPass.js:577
    render https://cdn.jsdelivr.net/gh/mrdoob/three.js@dev/examples/jsm/postprocessing/SSRPass.js:396
    render https://cdn.jsdelivr.net/gh/mrdoob/three.js@dev/examples/jsm/postprocessing/EffectComposer.js:150
    &lt;anonymous&gt; https://fiddle.jshell.net/_display/?editor_console=true:196
    onAnimationFrame https://cdn.jsdelivr.net/gh/mrdoob/three.js@dev/build/three.module.js:23897
    onAnimationFrame https://cdn.jsdelivr.net/gh/mrdoob/three.js@dev/build/three.module.js:12286
    start https://cdn.jsdelivr.net/gh/mrdoob/three.js@dev/build/three.module.js:12299
    setAnimationLoop https://cdn.jsdelivr.net/gh/mrdoob/three.js@dev/build/three.module.js:23911
    &lt;anonymous&gt; https://fiddle.jshell.net/_display/?editor_console=true:195
</code></pre></div>
<p dir="auto"><em><strong>Live example</strong></em></p>
<ul dir="auto">
<li><a href="https://jsfiddle.net/tdxq3psr/" rel="nofollow">jsfiddle</a> (see devtools console for the err)</li>
</ul>
<p dir="auto"><strong>Expected behavior</strong></p>
<p dir="auto">it should render a box and two spheres .. w/ reflection on their surfaces.</p>
<p dir="auto"><strong>Platform:</strong></p>
<ul dir="auto">
<li>Device: [Desktop]</li>
<li>OS: [Windows]</li>
<li>Browser: [Firefox]</li>
<li>Three.js version: [dev]</li>
</ul>
<p dir="auto">Thanks.</p>
<h5 dir="auto">Description of the problem</h5>
<p dir="auto"><code class="notranslate">OutlinePass</code> does not appear to properly support <code class="notranslate">InstancedMesh</code>. I've created an example here that uses the same setup of <code class="notranslate">OutlinePass</code> in the example in the docs. The sphere is a regular <code class="notranslate">Mesh</code> and the squares are the instances of <code class="notranslate">InstancedMesh</code>.<br>
<a href="https://jsfiddle.net/anthonysimone/dL8s2qmv/" rel="nofollow">https://jsfiddle.net/anthonysimone/dL8s2qmv/</a></p>
<p dir="auto">It seems like there's a couple things going on here.</p>
<ol dir="auto">
<li>If you hover over the regular mesh first (sphere), then one of the instanced mesh instances, the base position of the <code class="notranslate">InstancedMesh</code> is outlined any time you’re hovering over any of the instances. In the above example all of the instances have been moved from the default position to demonstrate this clearly.</li>
<li>If you first hover over any of the box instances, the entire collection of instances (though not the base position) of the <code class="notranslate">InstancedMesh</code> are outlined, but then hovering over a regular mesh (the sphere) causes an error.</li>
</ol>
<p dir="auto">I dug into <code class="notranslate">OutlinePass</code> a bit and it seems like it might just not be taking into account handling instanced meshes separately from regular meshes. I'm still pretty new to Three.js, so I don't have a potential fix to suggest at this point.</p>
<h5 dir="auto">Three.js version</h5>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> r113</li>
</ul>
<h5 dir="auto">Browser</h5>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> All of them</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Chrome</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Firefox</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Internet Explorer</li>
</ul>
<h5 dir="auto">OS</h5>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> All of them</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Windows</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> macOS</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Linux</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Android</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> iOS</li>
</ul>