LogoLogo
Get support
  • Home
  • Make API
  • Make Bridge
  • White Label
  • MCP Server
  • Custom Apps Documentation
  • How to read the documentation
  • Make Apps Editor
    • Develop apps in Make UI
    • Develop apps in VS Code
      • Generate your API key
      • Configure VS Code
      • Create an app in VS Code
      • Set the app's icon in VS Code
      • Use general controls
      • Manage testing and production app versions
      • Develop apps collaboratively
      • Write IML tests
      • Local development for Apps
        • Clone Make app to local workspace
        • Develop app in a local workspace (offline)
        • Commit the changes in Git repository
        • Deploy changes from local app to Make app
        • Pull changes from Make app
        • Create a new app origin
        • Compare changes between local and Make app
  • Create your first app
    • Create your app
    • App's environment
    • Base
    • Module
    • Connection
    • Error handling
  • Debugging your app
    • Debugging of pagination in list/search modules
    • Debugging RPC
    • Debugging of Custom IML Functions
      • Debug IML in Web Browser
      • Debug IML in VS Code
  • Make DevTool
    • Live Stream
    • Scenario Debugger
    • Tools
  • Best practices
    • Names, labels & descriptions
    • Base
    • Connections
    • Modules
    • Action and search modules
    • Action modules
    • Search modules
    • Update modules
    • Trigger modules
    • Remote Procedure Calls
    • Static parameters
    • Mappable parameters
    • Processing of input parameters
    • Processing of output parameters
    • Groups
  • Useful resources
  • App logo
  • App visibility
  • App review
    • App review prerequisites
    • Request app review
    • Review status
    • Approved app
  • Terms of approved app maintenance
  • Updating your app
    • Private/Public apps
    • Approved apps
      • Tracking code changes
      • Approval of changes in approved app
      • Managing breaking changes
  • App structure
    • Base
      • Base URL
      • Authorization
      • Error handling
      • Sanitization
      • Advanced inheritance
    • Connections
      • Basic connection
      • JWT
      • OAuth 1.0
      • OAuth 2.0
    • Webhooks
      • Shared
      • Dedicated
        • Attached
        • Not attached
    • Modules
      • Action
        • Module Actions
        • Components
      • Search
      • Trigger (polling)
      • Instant Trigger (webhook)
      • Universal Module
        • REST
        • GraphQL
      • Responder
    • Remote Procedure Calls
      • Components
      • Types of RPCs
        • Dynamic Options RPC
        • Dynamic Fields RPC
        • Dynamic Sample RPC
      • Available IML Variables
    • Custom IML functions
      • Dynamic mappable parameters
      • Handling of full update approach in update modules
      • Removal of empty collections and nulls
    • Groups
  • App blocks
    • Communication
      • Making Requests
      • Multiple Requests
      • Handling Responses
        • Type
        • Valid
        • Error
        • Limit
        • Iterate
        • Temp
        • Output
      • Pagination
      • IML Variables
      • Request-less Communication
      • Multipart/form-data
      • Buffer
    • Static parameters
    • Mappable parameters
    • Interface
    • Epoch
    • Samples
    • Scope
    • Scope List
  • App components
    • Data Types
    • Parameters
      • Array
      • Boolean
      • Buffer
      • Cert
      • Collection
      • Color
      • Date
      • Email
      • Filename
      • Folder, File
      • Filter
      • Hidden
      • Integer, Uinteger
      • Number
      • Password
      • Path
      • Pkey
      • Port
      • Select
      • Text
      • Time
      • Timestamp
      • Timezone
      • URL
      • UUID
    • JavaScript in Make
  • Other
    • Processing of 'empty' Values
    • Processing of JSON strings inside a JSON object
  • Apps Marketplace Beta
    • About
    • How does it work
    • Terms and conditions
    • Tips and tricks
      • Control of access in apps using basic connection
Powered by GitBook

Resources

  • Academy
  • Community
  • Help Center

Useful links

  • Support
  • Privacy Notice
  • Status Page
  • make.com

Follow us

  • LinkedIn
  • X (Twitter)
  • Facebook
  • Instagram

© 2025 make.com

On this page
Export as PDF
  1. Debugging your app

Debugging of pagination in list/search modules

If API supports pagination, it should be implemented. In order to make sure the pagination works as intended, it is recommended to set the page size to a low number, if possible, see the example below:

{
    "url": "/contacts/filters/{{parameters.filter_id}}",
    "method": "GET",
    "qs": {
        //"per_page": 100
	"per_page": 10 //set value for testing
    },
    "response": {
        "output": "{{item.contact}}",
        "iterate": "{{body.data.contacts}}",
        "limit": "{{parameters.limit}}"
    },
    "pagination": {
        "qs": {
            "page": "{{pagination.page}}"
        },
        "condition": "{{body.data.max_page > body.data.page}}"
    }
}

Then, it is needed to create as many records as one page and a few more. You can do it by using Flow Control > Repeater module, which also returns the ID of the repeat. Map this ID in the following module as it will help to differentiate the records.

Once the testing records are created, you can test your search module. Thanks to using the ID from the repeater, you are able to see whether the records are ordered and how, and whether the records are correctly retrieved, e. g. they are not being duplicated (1 page retrieved multiple times).

In the console, you can also effectively control every retrieved page and its size.

Possible pagination issues:

  • The stop condition limit set by the user doesn't work. Therefore all the records that exist in the account are retrieved (or only the first page if there is also the issue from the point below).

  • The next page condition isn't set correctly so the next page isn't retrieved even though it should according to the user's limit and the content of the account.

  • The next page condition isn't set correctly so the next pages are retrieved even though all records were already retrieved. They can either be duplicated or without any records (without looking into the console, you will not spot them).

  • The pagination is not optimized so even though there is a parameter saying “there is no other page to retrieve”, it still retrieves the next page which is empty (developer implements the pagination for offset even though he/she could implement it using the cursor parameter).

  • The value in the parameter page is too low therefore there are too many pages being retrieved (= too many calls).

  • Not common - the records are duplicated because the pages are overlapped (1st page 1-100, 2nd page 100-199 instead of 1-100, 101-200).

PreviousDebugging your appNextDebugging RPC

Last updated 4 months ago

Creation of Testing Data Using Repeater
Example of Array Output
Example of Paginated Response