The report is developed using data with all elements present.
For cases when all data elements are returned, the report can be published using either the REST API or from the Desktop. The report and the data set is created and the data model can be refreshed.
For cases when optional elements are missing, the reprot can only be published using the Desktop. Publishing using REST API will fail, reporting a missing field in the model. Using the REST API, the report will be created in the workspace along with a dataset shell, but no data will exist and the report cannot be refreshed. Publishing from the desktop in this scenario is successful, the report and dataset are created and the report can be refreshed.
There is some difference between publishing using the desktop and the service, where the service is not able to accomodate missing data elements when publishing.