Обнаружился баг в друпале: если использовать в форме поле загрузки файла ('#type' => 'file') и файл грузить с помощью друпаловского AHAH. Вроде такого:

$form['file_upload'] = array(
  '#type' => 'file',
  #title' => t('upload'),   
  '#size' => 40,
);
$form['submit'] = array(
  '#type' => 'submit',
  '#submit' => array('file_add_submit'),
  '#value' => t('Attache'),
  '#ahah' => array(
    'path' => "admin/content/file_upload/ahah",
    'wrapper' => 'file-upload-wrapper',
    'method' => 'replace',
    'progress' => array('type' => 'bar', 'message' => t('Please wait...')),
    'effect' => 'none',
  ),
);

То при использовании в функции-обработчике AHAH функции drupal_json для возращения результата приводит к ошибке. Вместо нее надо использовать связку:

print drupal_to_js(array('status' => TRUE, 'data' => $output));
exit;

Она будет давать аналогичный эффект предыдущей функции.