Skip to content

Adding a prompt with a name that is taken causes a server crash #440

Closed

Description

@johnsonr

While this may be invalid usage, it definitely should not crash the server.

Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
18:50:18.060 [main] ERROR SpringApplication - Application run failed
io.modelcontextprotocol.spec.McpError: Prompt with name 'com.embabel.example.horoscope.StarNewsFinder.writeup' already exists
	at io.modelcontextprotocol.server.McpAsyncServer.lambda$addPrompt$27(McpAsyncServer.java:508)
	at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:45)
	at reactor.core.publisher.Mono.subscribe(Mono.java:4576)
	at reactor.core.publisher.Mono.block(Mono.java:1778)
	at io.modelcontextprotocol.server.McpSyncServer.addPrompt(McpSyncServer.java:103)
	at com.embabel.agent.mcpserver.McpSyncServerConfiguration.exposeMcpPrompts(McpSyncServerConfiguration.kt:166)
	at com.embabel.agent.mcpserver.McpSyncServerConfiguration.exposeMcpFunctionality(McpSyncServerConfiguration.kt:92)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at org.springframework.context.event.ApplicationListenerMethodAdapter.doInvoke(ApplicationListenerMethodAdapter.java:382)
	at org.springframework.context.event.ApplicationListenerMethodAdapter.processEvent(ApplicationListenerMethodAdapter.java:254)
	at org.springframework.context.event.ApplicationListenerMethodAdapter.onApplicationEvent(ApplicationListenerMethodAdapter.java:173)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:185)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:178)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:156)
	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:454)
	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:387)
	at com.embabel.agent.spi.support.DelegatingAgentScanningBeanPostProcessor.onApplicationEvent(AutoRegistration.kt:106)
	at com.embabel.agent.spi.support.DelegatingAgentScanningBeanPostProcessor.onApplicationEvent(AutoRegistration.kt:80)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:185)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:178)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:156)
	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:454)
	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:387)
	at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:1009)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:630)
	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146)
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752)
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:318)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1361)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1350)
	at com.embabel.example.AgentMcpServerApplication.main(AgentMcpServerApplication.java:53)
	Suppressed: java.lang.Exception: #block terminated with an error
		at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:104)
		at reactor.core.publisher.Mono.block(Mono.java:1779)
		... 29 common frames omitted
18:50:18.146 [ForkJoinPool.commonPool-worker-1] WARN  StdioClientTransport - Process terminated with code 255

Activity

  1. self-assigned this
    on Aug 6, 2025
  2. modified the milestones: 0.11.2, 0.12.0 on Aug 6, 2025
  3. modified the milestones: 0.12.0, 0.13.0, 0.14.0 on Sep 12, 2025
  4. tzolov commented on Oct 1, 2025

    @tzolov
    Contributor

    Thank you for the patience @johnsonr !
    This (and related) issue should be resolved by #576 and #579
    The 0.14.0 scheduled for tomorrow, should have it

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions