Paginate Grouped Entries I am trying to paginate grouped entries as follows...

{% set searchParam = craft.request.getParam('q') %}

{% set groups = craft.entries({
    search: searchParam
})|group('section') %}

{% for entries in groups %}
    {% paginate entries.limit(10) as pageEntries %}

    {% endpaginate %}
{% endfor %}


However it is throwing this error on the paginate line: Array to string conversion

How else can I achieve this functionality?
That error is occurring at entries.limit(10), because at that point entries is already an array of fetched entries, rather than an ElementCriteriaModel. (The entries will get fetched as soon as the ElementCriteriaModel is passed to your |group filter.)

The only way to grab just 10 entries per section (per page) will be to loop through each of your sections, and create a new ElementCriteriaModel for each one.

{% set sections = {
    'news': 'News',
    'events': 'Events',
    // ...
} %}

{% for section, sectionName in sections %}

    {% set entries = craft.entries.section(section).limit(10) %}
    {% paginate entries as pageInfo, pageEntries %}

    {% if pageEntries|length %}
        &lt;h3&gt;{{ sectionName }}&lt;/h3&gt;

        {% for entry in pageEntries %}
            &lt;a href="{{ entry.url }}"&gt;{{ entry.title }}&lt;/a&gt;
        {% endfor %}
    {% endif %}

{% endfor %}


Note that Craft does not support multiple independently paginated lists of entries on a single webpage. So if you use the built-in {% paginate %} tag like this, when it takes you to page 2, all of the sections’ {% paginate %} tags will start showing page 2 content. And you’ll need to keep track of which section actually has the most pages, before building out your pagination nav.

// ...

{% set primaryPageInfo = null %}

{% for section, sectionName in sections %}

    {% set entries = craft.entries.section(section).limit(10) %}
    {% paginate entries as pageInfo, pageEntries %}

    // ...

    {# Does this section have the most entries (so far)? #}
    {% if not primaryPageInfo or pageInfo.totalPages &gt; primaryPageInfo.totalPages %}
        {% set primaryPageInfo = pageInfo %}
    {% endif %}

{% endfor %}

{# Build out the pagination nav using the biggest section's pageInfo #}
&lt;a href="{{ primaryPageInfo.firstUrl }}"&gt;First Page&lt;/a&gt;
{% if primaryPageInfo.prevUrl %}&lt;a href="{{ primaryPageInfo.prevUrl }}"&gt;Previous Page&lt;/a&gt;{% endif %}
{% if primaryPageInfo.nextUrl %}&lt;a href="{{ primaryPageInfo.nextUrl }}"&gt;Next Page&lt;/a&gt;{% endif %}
&lt;a href="{{ primaryPageInfo.lastUrl }}"&gt;Last Page&lt;/a&gt;