Tensorflow BigQueryReader example raises exception

When running the BigQueryReader example, I get the following error:

ValueErrorTraceback (most recent call last)
<ipython-input-10-37b7268647b3> in <module>()
     32 # Read and parse examples.
     33 row_id, examples_serialized = reader.read(queue)
---> 34 examples = tf.parse_example(examples_serialized, features=features)
     35 
     36 # Process the Tensors examples["name"], examples["age"], etc...

/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/parsing_ops.pyc in parse_example(serialized, features, name, example_names)
    584   outputs = _parse_example_raw(
    585       serialized, example_names, sparse_keys, sparse_types, dense_keys,
--> 586       dense_types, dense_defaults, dense_shapes, name)
    587   return _construct_sparse_tensors_for_sparse_features(features, outputs)
    588 

/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/parsing_ops.pyc in _parse_example_raw(serialized, names, sparse_keys, sparse_types, dense_keys, dense_types, dense_defaults, dense_shapes, name)
    710         dense_keys=dense_keys,
    711         dense_shapes=dense_shapes,
--> 712         name=name)
    713     # pylint: enable=protected-access
    714 

/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/gen_parsing_ops.pyc in _parse_example(serialized, names, sparse_keys, dense_keys, dense_defaults, sparse_types, dense_shapes, name)
    302         sparse_keys=sparse_keys, dense_keys=dense_keys,
    303         dense_defaults=dense_defaults, sparse_types=sparse_types,
--> 304         dense_shapes=dense_shapes, name=name)
    305     _result = _op.outputs[:]
    306     _inputs_flat = _op.inputs

/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/op_def_library.pyc in _apply_op_helper(self, op_type_name, name, **keywords)
    785         op = g.create_op(op_type_name, inputs, output_types, name=scope,
    786                          input_types=input_types, attrs=attr_protos,
--> 787                          op_def=op_def)
    788       return output_structure, op_def.is_stateful, op
    789 

/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.pyc in create_op(self, op_type, inputs, dtypes, input_types, name, attrs, op_def, compute_shapes, compute_device)
   3271         op_def=op_def)
   3272     self._create_op_helper(ret, compute_shapes=compute_shapes,
-> 3273                            compute_device=compute_device)
   3274     return ret
   3275 

/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.pyc in _create_op_helper(self, op, compute_shapes, compute_device)
   3311     # compute_shapes argument.
   3312     if op._c_op or compute_shapes:  # pylint: disable=protected-access
-> 3313       set_shapes_for_outputs(op)
   3314     # TODO(b/XXXX): move to Operation.__init__ once _USE_C_API flag is removed.
   3315     self._add_op(op)

/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.pyc in set_shapes_for_outputs(op)
   2499     return _set_shapes_for_outputs_c_api(op)
   2500   else:
-> 2501     return _set_shapes_for_outputs(op)
   2502 
   2503 

/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.pyc in _set_shapes_for_outputs(op)
   2472       shape_func = _call_cpp_shape_fn_and_require_op
   2473 
-> 2474   shapes = shape_func(op)
   2475   if shapes is None:
   2476     raise RuntimeError(

/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.pyc in call_with_requiring(op)
   2402 
   2403   def call_with_requiring(op):
-> 2404     return call_cpp_shape_fn(op, require_shape_fn=True)
   2405 
   2406   _call_cpp_shape_fn_and_require_op = call_with_requiring

/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/common_shapes.pyc in call_cpp_shape_fn(op, require_shape_fn)
    625     res = _call_cpp_shape_fn_impl(op, input_tensors_needed,
    626                                   input_tensors_as_shapes_needed,
--> 627                                   require_shape_fn)
    628     if not isinstance(res, dict):
    629       # Handles the case where _call_cpp_shape_fn_impl calls unknown_shape(op).

/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/common_shapes.pyc in _call_cpp_shape_fn_impl(op, input_tensors_needed, input_tensors_as_shapes_needed, require_shape_fn)
    689       missing_shape_fn = True
    690     else:
--> 691       raise ValueError(err.message)
    692 
    693   if missing_shape_fn:

ValueError: Shape must be rank 1 but is rank 0 for 'ParseExample_2/ParseExample' (op: 'ParseExample') with input shapes: [], [0], [], [], [], [0], [0], [1].

Here's the code I'm running (with the variables filled in with my own project):

features = dict(
  name=tf.FixedLenFeature([1], tf.string),
  age=tf.FixedLenFeature([1], tf.int32),
  state=tf.FixedLenFeature([1], dtype=tf.string, default_value="UNK"))

# Create a Reader.
reader = bigquery_reader_ops.BigQueryReader(project_id=my_project,
                                            dataset_id=my_dataset,
                                            table_id=my_table,
                                            timestamp_millis=1520960400000,
                                            num_partitions=1,
                                            features=features)

# Populate a queue with the BigQuery Table partitions.
queue = tf.train.string_input_producer(reader.partitions())

# Read and parse examples.
row_id, examples_serialized = reader.read(queue)
examples = tf.parse_example(examples_serialized, features=features)

Am I doing something wrong, or are the docs wrong?