OBJLoader - Cannot read property 'traverse' of undefined

hello! I was studying OBJLoader example from Three.js example and I just put my own model in it and it shows error!! which is :
TypeError: Cannot read property ‘traverse’ of undefined
at Group.traverse (three.module.js:6910)
at client.js:74
at Object.onLoad (OBJLoader.js:457)
at XMLHttpRequest. (three.module.js:36508)

and here is my code

import * as THREE from '../build/three.module.js';


import { OrbitControls } from './jsm/controls/OrbitControls.js';
import { OBJLoader } from './jsm/loaders/OBJLoader.js';
import { RGBELoader } from './jsm/loaders/RGBELoader.js';

    var container;
    var params = {
	   projection: 'normal',
	   autoRotate: true,
	   reflectivity: 1.0,
	   background: false,
	   exposure: 1.0,
	   gemColor: 'Green'
			};
    var camera, scene, renderer, objects = [];
    var gemBackMaterial, gemFrontMaterial;
    var hdrCubeRenderTarget;

    init();
    animate();

	function init() {

		container = document.createElement( 'div' );
		document.body.appendChild( container );

        camera = new THREE.PerspectiveCamera( 40, window.innerWidth / window.innerHeight, 1, 1000 );
				camera.position.set( 0.0, - 10, 20 * 3.5 );

        scene = new THREE.Scene();
        scene.background = new THREE.Color( 0x000000 );

        renderer = new THREE.WebGLRenderer( { antialias: true } );

        gemBackMaterial = new THREE.MeshPhysicalMaterial( {
					map: null,
					color: 'white',
					metalness: 1,
					roughness: 0,
					opacity: 0.5,
					side: THREE.BackSide,
					transparent: true,
					envMapIntensity: 5,
					premultipliedAlpha: true
					// TODO: Add custom blend mode that modulates background color by this materials color.
				} );

        gemFrontMaterial = new THREE.MeshPhysicalMaterial( {
					map: null,
					color: 'white',
					metalness: 0,
					roughness: 0,
					opacity: 0.25,
					side: THREE.FrontSide,
					transparent: true,
					envMapIntensity: 10,
					premultipliedAlpha: true
				} );

        var manager = new THREE.LoadingManager();
        manager.onProgress = function ( item, loaded, total ) {

					console.log( item, loaded, total );

				};

        var loader = new OBJLoader( manager );
        loader.load( 'textures/sculptures/sculpture_1.obj', function ( object ) {

            object.traverse( function ( child ) {

				if ( child instanceof THREE.Mesh ) {

							child.material = gemBackMaterial;
							var second = child.clone();
							second.material = gemFrontMaterial;

							var parent = new THREE.Group();
							parent.add( second );
							parent.add( child );
							scene.add( parent );

							objects.push( parent );

						}

					} );


				} );

        new RGBELoader()
            .setDataType( THREE.UnsignedByteType )
            .setPath( 'textures/' )
            .load( 'royal_esplanade_1k.hdr', function ( hdrEquirect ) {

				hdrCubeRenderTarget = pmremGenerator.fromEquirectangular( hdrEquirect );
				pmremGenerator.dispose();

				gemFrontMaterial.envMap = gemBackMaterial.envMap = hdrCubeRenderTarget.texture;
				gemFrontMaterial.needsUpdate = gemBackMaterial.needsUpdate = true;

				hdrEquirect.dispose();

					} );

        var pmremGenerator = new THREE.PMREMGenerator( renderer );
        pmremGenerator.compileEquirectangularShader();

				// Lights

        scene.add( new THREE.AmbientLight( 0x222222 ) );

        var pointLight1 = new THREE.PointLight( 0xffffff );
        pointLight1.position.set( 150, 10, 0 );
        pointLight1.castShadow = false;
        scene.add( pointLight1 );

        var pointLight2 = new THREE.PointLight( 0xffffff );
        pointLight2.position.set( - 150, 0, 0 );
        scene.add( pointLight2 );

        var pointLight3 = new THREE.PointLight( 0xffffff );
        pointLight3.position.set( 0, - 10, - 150 );
        scene.add( pointLight3 );

        var pointLight4 = new THREE.PointLight( 0xffffff );
        pointLight4.position.set( 0, 0, 150 );
        scene.add( pointLight4 );

        renderer.setPixelRatio( window.devicePixelRatio );
        renderer.setSize( window.innerWidth, window.innerHeight );
        renderer.shadowMap.enabled = true;
        container.appendChild( renderer.domElement );

        renderer.outputEncoding = THREE.sRGBEncoding;



        var controls = new OrbitControls( camera, renderer.domElement );
        controls.minDistance = 20;
        controls.maxDistance = 200;

        window.addEventListener( 'resize', onWindowResize, false );



			}

    function onWindowResize() {

        var width = window.innerWidth;
        var height = window.innerHeight;

        camera.aspect = width / height;
        camera.updateProjectionMatrix();

        renderer.setSize( width, height );

			}

			//

    function animate() {

        requestAnimationFrame( animate );

//        stats.begin();
        render();
//        stats.end();

			}

    function render() {

        if ( gemBackMaterial !== undefined && gemFrontMaterial !== undefined ) {

            gemFrontMaterial.reflectivity = gemBackMaterial.reflectivity = params.reflectivity;

            var newColor = gemBackMaterial.color;
            switch ( params.gemColor ) {


				case 'White': newColor = new THREE.Color( 0x888888 ); break;

		}
            gemBackMaterial.color = gemFrontMaterial.color = newColor;


				}

        renderer.toneMappingExposure = params.exposure;

        camera.lookAt( scene.position );
        
        if ( params.autoRotate ) {

				for ( var i = 0, l = objects.length; i < l; i ++ ) {

				    var object = objects[ i ];
				    object.rotation.y += 0.005;

					}

	}

        renderer.render( scene, camera );

			}

Thanks!

Do you mind sharing sculpture_1.obj in this topic?

do you think it is because sculpture divided with 2 cubes?
I only see bottom part of whole sculpture!

have you solved this problem, I met the same problem