Skip to content

[BUG][UI]: Cannot deactivate virtual server #2251

@gcgoncalves

Description

@gcgoncalves

🐞 Bug Summary

Clicking the Deactivate button on a virtual server renders an error message.

Screen.Recording.2026-01-20.at.11.57.39.mov
Image

🧩 Affected Component

Select the area of the project impacted:

  • mcpgateway - API
  • mcpgateway - UI (admin panel)
  • mcpgateway.wrapper - stdio wrapper
  • Federation or Transports
  • CLI, Makefiles, or shell scripts
  • Container setup (Docker/Podman/Compose)
  • Other (explain below)

🔁 Steps to Reproduce

  1. Access Admin UI
  2. Navigate to Virtual Servers
  3. Click "Deactivate" on a server row

🤔 Expected Behavior

The server should become deactivated.


📓 Logs / Error Output

2026-01-20T14:44:02 - mcpgateway.observability - ERROR - No OTLP exporter available
2026-01-20T14:45:27 - mcpgateway.services.structured_logger - ERROR - [server_service] Server state change failed
2026-01-20T14:45:27 - mcpgateway.admin - ERROR - Error setting server status: Failed to set server state: (psycopg.errors.FeatureNotSupported) FOR UPDATE cannot be applied to the nullable side of an outer join
[SQL: SELECT servers.id, servers.name, servers.description, servers.icon, servers.created_at, servers.updated_at, servers.enabled, servers.tags, servers.created_by, servers.created_from_ip, servers.created_via, servers.created_user_agent, servers.modified_by, servers.modified_from_ip, servers.modified_via, servers.modified_user_agent, servers.import_batch_id, servers.federation_source, servers.version, servers.team_id, servers.owner_email, servers.visibility, servers.oauth_enabled, servers.oauth_config, email_teams_1.id AS id_1, email_teams_1.name AS name_1, email_teams_1.slug, email_teams_1.description AS description_1, email_teams_1.created_by AS created_by_1, email_teams_1.is_personal, email_teams_1.visibility AS visibility_1, email_teams_1.max_members, email_teams_1.created_at AS created_at_1, email_teams_1.updated_at AS updated_at_1, email_teams_1.is_active
FROM servers LEFT OUTER JOIN email_teams AS email_teams_1 ON servers.team_id = email_teams_1.id AND email_teams_1.is_active = true
WHERE servers.id = %(id_2)s::VARCHAR FOR UPDATE]
[parameters: {'id_2': '107de21366ac431b8d273de35541eb00'}]
Image

🧠 Environment Info

You can retrieve most of this from the /version endpoint.

Key Value
Version or commit 1.0.0-BETA-1
Runtime Prthon 3.12.12, Gunicorn
Platform / OS macOS
Container Docker

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingfrontendFrontend development (HTML, CSS, JavaScript)

Type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions