The Atlassian Community Forums are currently in read-only mode. We will be relaunching on a new platform on September 22 (read more here). We apologize for the extended downtime. For concerns or questions, please email communitymanagers@atlassian.com. See you on the other side, on the new Atlassian Community Forums! :)

×

Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

No qualifying bean of type 'java.util.Map<?, ?>' available

Daniel Garcia
August 19, 2026

Has anyone seen this error before? It seems to happen when you have record in scripts. Every now and then after clearing groovy cache, the system seems to forget how to find java.util.Map. A reboot usually fixes it.

the full error is

c.a.j.web.component.ModuleWebComponentImpl] An exception occured while rendering the web panel: com.onresolve.jira.groovy.groovyrunner:WEBPANEL_NAME (null)
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'RECORD NAME': Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'java.util.Map<?, ?>' available: expected single matching bean but found 2: systemProperties,systemEnvironment
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:794)
at... (lots of stack trace, proxying, reflection etc)
Caused by: org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'java.util.Map<?, ?>' available: expected single matching bean but found 2: systemProperties,systemEnvironment
at org.springframework.beans.factory.config.DependencyDescriptor.resolveNotUnique(DependencyDescriptor.java:220)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1369)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311)
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:904)
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:781) ... 538 more

 

3 answers

Comments for this post are closed

Community moderators have prevented the ability to post new answers.

2 votes
Javier Martínez
Contributor
August 20, 2026

Hi @Daniel Garcia

This looks more like a ScriptRunner/Spring classloader issue than a problem with java.util.Map itself.

The interesting part is that Spring finds two Map beans (systemProperties and systemEnvironment) and is unable to decide which one should be injected. The fact that a Jira restart fixes it also suggests that something related to the ScriptRunner classloader/cache may be getting into an inconsistent state after compiling or reloading scripts containing records.

Have you noticed whether it starts happening after editing/reloading a specific script, or only after using record? Also, which Jira and ScriptRunner versions are you running?

If it is reproducible, I’d definitely raise it with Adaptavist Support, as the restart fixing it makes it sound like a potential ScriptRunner bug rather than an issue with the script itself.

0 votes
Ram Kumar Aravindakshan _Adaptavist_
Community Champion
September 6, 2026

Hi @Daniel Garcia

Just out of curiosity, have you tried declaring it as a Map as a Generic Map, i.e. without specifying the strict type, to see if it makes a difference?

Thank you and Kind regards,
Ram

Daniel Garcia
September 7, 2026

I'm not sure what you mean. Are you saying instead of

Thing thing = new Thing("coffee cup", 3)
doSomething(thing)

record Thing(String name, Integer size) {}

I do

Map<String,Object> thing = [name: "coffee cup", size: 3]
doSomething(thing)

If so, yes that works

Ram Kumar Aravindakshan _Adaptavist_
Community Champion
September 8, 2026

Yes, I'm referring to just declaring it as a Map without any strict type, i.e.:-

Map thing = [name: 'coffee cup', size: 3]
doSometing(thing)

 

0 votes
Daniel Garcia
August 20, 2026

I'm thinking it must be a classloader issue.

It doesn't matter which script is edited, but scripts that contained records are affected. Classes that contained records and records that lived in their own file were not affected.

I've see the issue with several scriptrunner versions but it doesn't happen that often. Maybe once every 2-3 months.

 

Comments for this post are closed

Community moderators have prevented the ability to post new answers.

DEPLOYMENT TYPE
CLOUD
PRODUCT PLAN
ENTERPRISE
TAGS
AUG Leaders

Atlassian Community Events