title: Apache Beam Java 2.26.0: BigQueryIO 'No rows present in the request'
body: <p>Since the Beam <code>2.26.0</code> update we ran into errors in our Java SDK streaming data pipelines. We have been investigating the issue for quite some time now but are unable to track down the root cause. When downgrading to <code>2.25.0</code> the pipeline works as expected.</p>
  <p>Our pipelines are responsible for ingestion, i.e., consume from Pub/Sub and ingest into BigQuery. Specifically, we use the <code>PubSubIO</code> source and the <code>BigQueryIO</code> sink (streaming mode). When running the pipeline, we encounter the following error:</p>
  <pre><code>{
    &quot;code&quot; : 400,
    &quot;errors&quot; : [ {
      &quot;domain&quot; : &quot;global&quot;,
      &quot;message&quot; : &quot;No rows present in the request.&quot;,
      &quot;reason&quot; : &quot;invalid&quot;
    } ],
    &quot;message&quot; : &quot;No rows present in the request.&quot;,
    &quot;status&quot; : &quot;INVALID_ARGUMENT&quot;
  }
  </code></pre>
  <p>Our initial guess was that the pipeline's logic was somehow bugged, causing the <code>BigQueryIO</code> sink to fail. After investigation, we concluded that the <code>PCollection</code> feeding the sink is indeed containing correct data.</p>
  <p>Earlier today I was looking in the <a href="https://beam.apache.org/blog/beam-2.26.0/" rel="nofollow noreferrer">changelog</a> and noticed that the <code>BigQueryIO</code> sink received numerous updates. I was specifically worried about the following changes:</p>
  <ol>
  <li>BigQuery’s DATETIME type now maps to Beam logical type org.apache.beam.sdk.schemas.logicaltypes.SqlTypes.DATETIME</li>
  <li>Java BigQuery streaming inserts now have timeouts enabled by default. Pass <code>--HTTPWriteTimeout=0</code> to revert to the old behavior</li>
  </ol>
  <p>With respect to the first update, I made sure to disable all <code>DATETIME</code> in the resulting <code>TableRow</code> objects. In this specific scenario, the error still stands.</p>
  <p>For the second change, I'm unsure how to pass the <code>--HTTPWriteTimeout=0</code> flag to the pipeline. How is this best achieved?</p>
  <p>Any other suggestions as to the root cause of this issue?</p>
  <p>Thanks in advance!</p>