O JobScheduler periódico não respeita as restrições

Usando oJobScheduler, Montei um simplesJobService do seguinte modo:

@TargetApi(21)
public class SimpleJobService extends JobService {
    private static final String TAG = "SimpleJobService";

    @Override
    public boolean onStartJob(JobParameters jobParameters) {
        if (jobParameters.isOverrideDeadlineExpired()) {
            Log.d(TAG, "This shouldn't happen");
            Toast.makeText(this, "This shouldn't happen", Toast.LENGTH_LONG).show();
        }
        jobFinished(jobParameters, false);

        return true;
    }

    @Override
    public boolean onStopJob(JobParameters jobParameters) {
        return true;
    }
}

Eu então configuro oJobService para ser periódico (a cada minuto) e exigir rede e carregamento não medidos:

    ComponentName jobServiceComponent = new ComponentName(this, SimpleJobService.class);

    JobInfo.Builder builder = new JobInfo.Builder(2, jobServiceComponent);
    builder.setPersisted(true);
    builder.setPeriodic(60000);
    builder.setRequiresCharging(true);

    builder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_UNMETERED);
    JobScheduler jobScheduler = (JobScheduler) getSystemService(Context.JOB_SCHEDULER_SERVICE);
    jobScheduler.schedule(builder.build());

oonStartJob do meuSimpleJobService está sendo chamado independentemente de meu dispositivo estar carregando ou de uma rede não-medida.

A documentação parasetPeriodic(long) diz que não pode ser usado em conjunto comsetOverrideDeadline(long) (e eu não sou assim mesmo), mas estou surpreso quejobParameters.isOverrideDeadlineExpired() noonStartJob é sempretrue com esta configuração.

Estou faltando alguma coisa aqui?

Isso me parece um bug do Android, mas estou surpreso por não encontrar outras pessoas que relatam esse problema.

Esse comportamento foi observado no Android 6.0.1

questionAnswers(1)

yourAnswerToTheQuestion