I'm working on a marketplace app that creates a custom field during installation. After some painful troubleshooting, I've come to realize that, unless a Company Managed Project is present, the API call to "/rest/api/3/field" returns a subset of the fields that are present in the system. With TMP only, ~45 fields are returned, the custom field that our app creates isn't among them despite the fact that we can verify its existence at https://mytenant.atlassian.net/jira/settings/issues/fields . Once a CMP has been created, ~85 fields are returned by the API call, including the custom field in question.
Is this a bug or by design? If the latter, what's the reasoning? The custom field is passed along with the work items details for TMPs, but without a CMP present in the system we dont have a good way of identifying it.