AJAX callback inserts empty div with large amounts of data - Whats happening? Drupal 7 - Created a module that lists out a bunch of tabular data from an external oracle database. The list has a number of select boxes to narrow down criteria. After setting up the menu file I have the following callbacks:

function listAll($form,&amp;$form_state) {
    //Page callback for drupal_get_form


    $form['semesterSelect'] = array(
        '#type' =&gt; 'select',
        '#title' =&gt; 'Semester',
        '#options' =&gt; array('Fall','Winter','Spring','Summer'),
        '#default_value' =&gt; 'Fall',
        '#ajax' =&gt; array(
            'callback' =&gt; 'callbackSemesterSelect',
            'wrapper' =&gt; 'courseListDiv',
        ),
    );

    $form['courseList'] = array(
        '#type' =&gt; 'markup',
        '#prefix' =&gt; '&lt;div id="courseListDiv"&gt;',
        '#suffix' =&gt; '&lt;/div&gt;',
    );

    if (!empty($form_state['values']['semesterSelect'])) {
        $form['courseList']['#markup'] = getCourseTable();
    } else {
        $form['courseList']['#markup'] = 'Select a semester';
    }

    return $form;
}

function callbackSemesterSelect($form, $form_state) {   
    return $form['courseList'];
}

function getCourseTable() {

/***
* This function uses ob_start() and ob_get_clean() to return an HTML formatted table
*/

}


What I have noticed is that if my table goes over 30 or so rows the output ends up being an empty div where courseListDiv was previously. When its under 30 rows it displays the courseList element with prefix/suffix as expected. Is the output buffering causing this? is there a limit on ajax data or something in drupal that might be causing this?
Turns out there was some UTF8 encoding in a field that was causing the output to not be rendered. Appears to be something in the output buffering that caused this and not drupal. Adding a utf8_decode when the fields print has resolved the issue.