Forge Read-Only Custom Field appears on JSM Internal Create Screen but is hidden on Portal

Hi everyone,

I am currently building a Forge app and have noticed an unexpected behavior concerning read-only custom fields within Jira Service Management (JSM) projects.

The Scenario: I have two Forge custom fields: read-only custom field is explicitly defined as read-only: true in the manifest.yml file, and the editable custom field is a standard editable field. I added both of them to a JSM project’s Request Type form.

Expected Behavior (Customer Portal): As you can see in the Request Type configuration (Image 1), JSM correctly identifies the read-only custom field and marks it as “Hidden”. When a user goes to the customer portal to raise a request, it works exactly as expected—only the editable custom field is visible, and the read-only field is successfully hidden (Image 2).

The Problem (JSM Internal Create Screen): The issue occurs when an agent tries to create an issue internally from the main Jira UI for this same JSM project. The read-only custom field unexpectedly appears on the internal Create screen.

Because the field is rendered on the form, attempting to save/create the issue causes the Jira backend to reject the request with the following error: Field does not support update 'customfield_xx'

Additional Context:

  • On standard Jira projects (Non-JSM), this works perfectly. I cannot even add or select the read-only field for the issue Create screen, which makes complete sense.

  • It seems like JSM’s internal screen syncing logic ignores the Forge read-only property and forces the field onto the internal Create screen because it exists on the Request Type form.

Has anyone experienced this issue before? Any advice on how to debug or resolve this would be much appreciated!

Thanks in advance for your help!

Best regards,

Found the line that covers this, from the manifest reference docs:

Note that read-only fields won’t be rendered on Jira Cloud issue create or transition screens, or Jira Service Management portal requests.

That’s under a general “Read-only fields” heading, not scoped to one screen type, and this internal agent screen is still a Jira Cloud issue create screen, so on paper it should be covered too, worth checking rather than assuming either way. Same doc: they “can only be updated by your app via REST API, not by users or automation.” That’s the likely explanation for the save error, the field is correctly rejecting a user-supplied value once it’s wrongly showing up on the form.

Worth using rather than assuming away: you already said non-JSM projects won’t even let you add such a field to a Create screen at all. So enforcement normally happens at add-to-screen time, not only render time, and the real question is whether the Request Type “Fields” tab is a separate add-path that skips that check. On your own screenshot, “Hidden” sits under the Request form tab, separate from Work item view, so that toggle governs the portal form, not the screen the agent-side dialog actually draws from.

Company-managed project: check Project settings > Screens for that issue type. Team-managed: Project settings > Issue Types > the field layout instead. If it’s still assigned there despite being read-only, that’s already the anomaly given what you saw on the non-JSM project. Pulling it off will likely also drop it from the Request form until you re-add it, so try it on a copy first.

Either way, file a support ticket citing the quotes above, a field landing on that screen at all is outside what the guarantee promises.