We upgraded Graylog from 3.1 to 4.1. We wrote a client that interacts with the API to export and import dashboards. We adjusted the API and it works mostly. We encountered an issue while POSTing a new dashboard to a fresh Graylog. The API states that the search_id is optional. We expect that an object will be created if the search_id is not in the POST. However, it seems to be mandatory.
Since we create our dashboards on a dev Graylog and afterwards export them to our production Graylog, we can retrieve the search object and POST it to our production Graylog before we POST the dasboard itself.