Skip to content

VFolderDeployModal — "Deploy as service" on a model folder fails: GraphQL schema mismatch (imageId / slotName / quantity) #7249

@ironAiken2

Description

@ironAiken2

Summary

On the /data page, clicking the "서비스로 배포" (Deploy as service) action on a model-type folder opens VFolderDeployModal, which immediately fails to load. VFolderDeployModalQuery returns no data and the Relay network reports four GraphQL field errors against the running 26.4.4rc2 server schema:

Cannot query field "imageId" on type "PresetExecutionSpec". Did you mean "image"?
Cannot query field "imageId" on type "PresetExecutionSpec". Did you mean "image"?
Cannot query field "slotName" on type "AllocatedResourceSlotConnection".
Cannot query field "quantity" on type "AllocatedResourceSlotConnection".

The modal cannot render anything useful; deploy-as-service from a vfolder is unusable on this server.

Steps to reproduce

  1. Open the /data page on the test server.
  2. Pick a model-type vfolder (e.g., the model row in the screenshot).
  3. Click the "서비스로 배포" icon button next to the folder name.
  4. Observe the browser console — Relay reports the errors above and the modal fails to load.

Expected

VFolderDeployModalQuery succeeds, the modal renders, and the user can configure and submit a deployment.

Actual

The query fails with the four field errors quoted above. The modal cannot recover.

Root cause (frontend-side)

Two field mismatches between the WebUIs shipped queries and the 26.4.4rc2 server schema:

  1. PresetExecutionSpec.imageIdimage

The frontend queries execution { imageId, startupCommand } in:

  • react/src/components/VFolderDeployModal.tsx:141 (fragment)
  • react/src/components/VFolderDeployModal.tsx:494-495 (read-side: selectedPreset?.execution?.imageId)

Note: the local data/schema.graphql still defines imageId: UUID on PresetExecutionSpec (line 12029), so this is also a schema-sync gap — the bundled schema is out of date relative to the running server.

  1. AllocatedResourceSlotConnection.slotName / .quantity

The frontend queries resourceSlots { slotName, quantity } directly on the connection in react/src/components/DeploymentPresetDetailContent.tsx:78-81. On the running server resourceSlots is now a Connection type, so the query must traverse edges { node { slotName quantity } } (or whatever the new node type exposes).

This fragment is included from VFolderDeployModal via ...DeploymentPresetDetailContentFragment, so the deploy-modal flow is what surfaces the failure even though the offending fields live in the detail-content fragment.

Suggested fix

  1. Re-pull the latest server schema into data/schema.graphql (and data/client-directives.graphql if applicable) against 26.4.x.
  2. Update VFolderDeployModal.tsx to use the new execution.image field shape (rename usages on lines 141, 494, 495 — and verify what image actually returns; if it now returns an object instead of a UUID string, adjust the consumer accordingly).
  3. Update DeploymentPresetDetailContent.tsx to traverse resourceSlots { edges { node { slotName quantity } } } (confirm the node type from the refreshed schema), and update the array-mapping code at lines 79, 165-167 to flatten edges.
  4. Run pnpm run relay and bash scripts/verify.sh to confirm.
  5. Verify the same fragment is not used elsewhere (e.g., AdminDeploymentPresetSettingPageContent.tsx, AdminDeploymentPresetNodes.tsx) — those files also reference slotName and may need the same edges/node migration.

Environment

  • Test server: 10.122.10.97, core 26.4.4rc2
  • Release train: FR-2811 (26.5.0)

Impact

Deploy-as-service from /data is completely broken on 26.4.x. Any user trying to launch an inference deployment from a stored model folder hits this error.

JIRA Issue: FR-2816

Metadata

Metadata

Assignees

No one assigned

    Type

    No fields configured for Bug.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions