title: How to build or publish bundled video assets larger than 50MB in Expo react native
body: <p>Im trying to bundle a number of video files (100 MBs each) to my app so that the user can play them offline without having to download them from internet (client requirement). Im on expo SDK 30 and tried the offline method suggested by documentation (assetBundlePatterns).</p>
  
  <p>Problem is it looks like expo uploads the video files to server first then decides if it should bundle it with app binary or not. Because it works fine if my video file size less that 50MB but when I go higher it throws me the Exceeding maximum js bandwidth error. Which means expo actually tries to upload the file whereas I specified not to .</p>
  
  <p>So what is the solution ? How Can I include files larger than 50MB ?
  My app is not detached/ejected (I have also tried detaching but same thing)</p>
  
  <p><strong>Environment</strong>
  Expo / iOS &amp;&amp; Android / SDK 30</p>
  
  <p><strong>Steps to reproduce</strong></p>
  
  <ul>
  <li>Add a video larger than 50MB to your assets/video folder</li>
  <li>have this in your code
  
  </ul>
  
  <p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
  <div class="snippet-code">
  <pre class="snippet-code-js lang-js prettyprint-override"><code>&lt;Video
                              source={require("../../../assets/videos/sample_edit_new.mp4")}
                              rate={1.0}
                              volume={1.0}
                              isMuted={false}
                              resizeMode="cover"
                              shouldPlay = {false}
                              isLooping = {false}
                              style={{ width: 500, height: 300 }}
                              useNativeControls
                          /&gt;</code></pre>
  </div>
  </div>
  </p>
  
  <ul>
  <li>Specify that path in assetBundlePatterns</li>
  </ul>
  
  <p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
  <div class="snippet-code">
  <pre class="snippet-code-js lang-js prettyprint-override"><code>"assetBundlePatterns": [
    "assets/videos/*"
  ],</code></pre>
  </div>
  </div>
  </p>
  
  <ul>
  <li>run expo publish or expo build:ios in terminal</li>
  </ul>
  
  <p><strong>Observed Behaviour</strong></p>
  
  <ul>
  <li>When trying expo publish I get</li>
  </ul>
  
  <blockquote>
    <p>[16:02:35] Finished building JavaScript bundle in 15924ms.</p>
    
    <p>[16:02:35] Uploading assets</p>
    
    <p>[16:02:48] Uploading /assets/videos/roleplay.mp4</p>
    
    <p>[16:02:48] 'Request body larger than maxBodyLength limit'</p>
  </blockquote>
  
  <ul>
  <li>When trying expo build:ios I get</li>
  </ul>
  
  <blockquote>
    <p>[15:27:46] Publishing to channel 'default'...</p>
    
    <p>[15:27:48] Building iOS bundle</p>
    
    <p>[15:27:53]' Error: socket hang up'</p>
  </blockquote>