Jira Software 10.5 and Jira Service Management 10.5 EAP 01 is now available

Hi, Developer Community! :wave: The first EAP release of Jira Software 10.5 and Jira Service Management 10.5 is ready for testing.

You can download the EAP from this page. If you’re using maven.atlassian.com, the version is 10.5.0-m0001.

To find out more about this EAP release, check out Preparing for Jira 10.5.

If you have any comments, post them below.

Happy testing,
The Jira Data Center team

1 Like

Hi @MariaSobiska

I think that not all new packages are publicly available

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  16.591 s
[INFO] Finished at: 2025-02-21T06:43:25+01:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project testapp: Could not resolve dependencies for project com.itlab.jira.plugins:testapp:atlassian-plugin:6.8.1-SNAPSHOT
[ERROR] dependency: com.atlassian.upm:licensing-api:jar:7.1.5 (provided)
[ERROR] 	Could not find artifact com.atlassian.upm:licensing-api:jar:7.1.5 in atlassian-plugin-sdk (file:///Applications/Atlassian/atlassian-plugin-sdk/repository)
[ERROR] 	Could not find artifact com.atlassian.upm:licensing-api:jar:7.1.5 in atlassian-3rd-party-old (https://maven.atlassian.com/3rdparty)
[ERROR] 	Could not find artifact com.atlassian.upm:licensing-api:jar:7.1.5 in maven-central (https://repo1.maven.org/maven2/)
[ERROR] 	Could not find artifact com.atlassian.upm:licensing-api:jar:7.1.5 in atlassian-proxy (https://packages.atlassian.com/artifactory/maven-atlassian-all/)
[ERROR] 	Could not find artifact com.atlassian.upm:licensing-api:jar:7.1.5 in terracotta (https://repo.terracotta.org/maven2/)
[ERROR] 	Could not find artifact com.atlassian.upm:licensing-api:jar:7.1.5 in gradle-plugins (https://plugins.gradle.org/m2/)
[ERROR] 	Could not find artifact com.atlassian.upm:licensing-api:jar:7.1.5 in mulesoft (https://maven.anypoint.mulesoft.com/api/v1/maven/)
[ERROR] 	Could not find artifact com.atlassian.upm:licensing-api:jar:7.1.5 in aspose (https://releases.aspose.com/java/repo/)
[ERROR] 	Could not find artifact com.atlassian.upm:licensing-api:jar:7.1.5 in clojars (https://clojars.org/repo/)
[ERROR] 	Could not find artifact com.atlassian.upm:licensing-api:jar:7.1.5 in sonatype forge (https://repository.sonatype.org/content/repositories/forge/)
[ERROR] 	Could not find artifact com.atlassian.upm:licensing-api:jar:7.1.5 in mulesoft-releases (https://repository.mulesoft.org/releases/)
[ERROR] 	Could not find artifact com.atlassian.upm:licensing-api:jar:7.1.5 in mulesoft-public (https://repository.mulesoft.org/nexus/content/repositories/public/)
[ERROR] 	Could not find artifact com.atlassian.upm:licensing-api:jar:7.1.5 in typesafe (https://repo.typesafe.com/typesafe/releases/)
[ERROR] 	Could not find artifact com.atlassian.upm:licensing-api:jar:7.1.5 in jenkins-releases (https://repo.jenkins-ci.org/releases/)
[ERROR] 	Could not find artifact com.atlassian.upm:licensing-api:jar:7.1.5 in jenkins-public (https://repo.jenkins-ci.org/public/)
[ERROR] 	Could not find artifact com.atlassian.upm:licensing-api:jar:7.1.5 in maven-atlassian-all (https://packages.atlassian.com/mvn/maven-atlassian-all/)
[ERROR] 	Could not find artifact com.atlassian.upm:licensing-api:jar:7.1.5 in central (https://repo.maven.apache.org/maven2)

Cheers
Adam

We recently updated our machine to version v10.5.0-m0001#10050000-sha1:0d127c6. When installing the plugin manually, everything works correctly. However, when we try to install it using the following command:

atlas-install-plugin --server ${url_eap} --username ${atl_username} --password ${atl_password} --http-port 443 --plugin-key ${atl_key} --context-path ''

we receive a 403 Forbidden error:

[INFO] --- amps-dispatcher:9.1.1:install (default-cli) @ mockups ---
[INFO] Install Plugin: Couldn't get the token from upm. Headers. Falling back to legacy upload.
log4j:WARN No appenders could be found for logger (org.apache.commons.httpclient.HttpClient).
log4j:WARN Please initialize the log4j system properly.
[INFO] Install Plugin: Uploading 'mockups-999.999.jar' to server: https://jira-eap.balsamiqstaff.com
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  10.348 s
[INFO] Finished at: 2025-02-21T10:22:48+01:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal com.atlassian.maven.plugins:amps-dispatcher-maven-plugin:9.1.1:install (default-cli) on project mockups: Install Plugin: Upload failed[403]: Forbidden -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.atlassian.maven.plugins:amps-dispatcher-maven-plugin:9.1.1:install (default-cli) on project mockups: Install Plugin: Upload failed[403]: Forbidden
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:333)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
    at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
    at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
    at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:903)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:280)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:203)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:569)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:255)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:201)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:361)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:314)
Caused by: org.apache.maven.plugin.MojoExecutionException: Install Plugin: Upload failed[403]: Forbidden
    at com.atlassian.maven.plugins.pdk.InstallPluginMojo.legacyUploadFile (InstallPluginMojo.java:226)
    at com.atlassian.maven.plugins.pdk.InstallPluginMojo.uploadFile (InstallPluginMojo.java:167)
    at com.atlassian.maven.plugins.pdk.InstallPluginMojo.execute (InstallPluginMojo.java:135)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:126)
    at org.twdata.maven.mojoexecutor.MojoExecutor.executeMojo (MojoExecutor.java:120)
    at com.atlassian.maven.plugins.amps.util.MojoExecutorWrapperImpl.execute (MojoExecutorWrapperImpl.java:28)
    at com.atlassian.maven.plugins.amps.util.MojoExecutorWrapperImpl.executeWithMergedConfig (MojoExecutorWrapperImpl.java:39)
    at com.atlassian.maven.plugins.amps.MavenGoals.installPlugin (MavenGoals.java:903)
    at com.atlassian.maven.plugins.amps.pdk.AbstractInstallPluginMojo.installPlugin (AbstractInstallPluginMojo.java:56)
    at com.atlassian.maven.plugins.amps.pdk.InstallMojo.execute (InstallMojo.java:13)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:126)
    at org.twdata.maven.mojoexecutor.MojoExecutor.executeMojo (MojoExecutor.java:120)
    at com.atlassian.maven.plugins.amps.util.MojoExecutorWrapperImpl.execute (MojoExecutorWrapperImpl.java:28)
    at com.atlassian.maven.plugins.amps.util.MojoExecutorWrapperImpl.executeWithMergedConfig (MojoExecutorWrapperImpl.java:39)
    at com.atlassian.maven.plugins.ampsdispatcher.AbstractAmpsDispatcherMojo.execute (AbstractAmpsDispatcherMojo.java:58)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:126)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:328)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
    at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
    at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
    at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:903)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:280)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:203)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:569)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:255)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:201)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:361)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:314)
[ERROR]
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

Edit: I have added the logs from the server

2025-02-21 14:51:03,503+0000 http-nio-8080-exec-22 ERROR admin 890x16871x1 11egxc1 87.10.56.140,172.31.65.21 /rest/plugins/1.0/ [c.a.p.r.v2.exception.ThrowableExceptionMapper] Uncaught exception 2ae269ec-9868-4d40-8e51-e041bc56eefa thrown by REST service: value
java.lang.NullPointerException: value
        at java.base/java.util.Objects.requireNonNull(Objects.java:235)
        at com.atlassian.upm.api.util.Option$Some.<init>(Option.java:164)
        at com.atlassian.upm.api.util.Option.some(Option.java:184)
        at com.atlassian.upm.core.rest.resources.install.InstallFromFileUploadTask.<init>(InstallFromFileUploadTask.java:64)
        at com.atlassian.upm.core.rest.resources.PluginCollectionResource.installFromFileSystem(PluginCollectionResource.java:286)
        at jdk.internal.reflect.GeneratedMethodAccessor2274.invoke(Unknown Source)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:569)
        at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:52)
        at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:146)
        at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:189)
        at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:176)
        at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:93)
        at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:478)
        at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:400)
        at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:81)
        at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:256)
        at org.glassfish.jersey.internal.Errors$1.call(Errors.java:248)
        at org.glassfish.jersey.internal.Errors$1.call(Errors.java:244)
        at org.glassfish.jersey.internal.Errors.process(Errors.java:292)
        at org.glassfish.jersey.internal.Errors.process(Errors.java:274)
        at org.glassfish.jersey.internal.Errors.process(Errors.java:244)
        at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:265)
        at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:235)
        at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:684)
        at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:397)
        at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:349)
        at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:379)
        at com.atlassian.plugins.rest.v2.jersey.JerseyOsgiServletContainer.doFilter(JerseyOsgiServletContainer.java:80)
        at org.glassfish.jersey.servlet.ServletContainer.doFilter(ServletContainer.java:452)
        at com.atlassian.plugins.rest.v2.servlet.RestDelegatingServletFilter.doFilter(RestDelegatingServletFilter.java:84)
        ... 16 filtered
        at com.atlassian.plugins.rest.v2.servlet.RestServletUtilsUpdaterFilter.doFilterInternal(RestServletUtilsUpdaterFilter.java:29)
        at com.atlassian.plugins.rest.v2.servlet.RestServletUtilsUpdaterFilter.doFilter(RestServletUtilsUpdaterFilter.java:42)
        ... 27 filtered
        at com.atlassian.jira.plugin.mobile.web.filter.MobileAppRequestFilter.doFilter(MobileAppRequestFilter.java:61)
        ... 4 filtered
        at com.atlassian.jira.plugin.mobile.login.MobileLoginSuccessFilter.doFilter(MobileLoginSuccessFilter.java:56)
        ... 3 filtered
        at com.atlassian.diagnostics.internal.platform.monitor.http.HttpRequestMonitoringFilter.doFilter(HttpRequestMonitoringFilter.java:56)
        ... 8 filtered
        at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:23)
        ... 4 filtered
        at com.atlassian.app.usage.core.features.user.interaction.servlet.filter.CapturingServletFilter.doFilter(CapturingServletFilter.kt:40)
        ... 3 filtered
        at com.atlassian.app.usage.core.features.common.usage.rest.filter.CapturingRestFilter.doFilter(CapturingRestFilter.kt:38)
        ... 42 filtered
        at com.atlassian.theme.filter.DefaultRequestOverrideServletFilter.doFilter(DefaultRequestOverrideServletFilter.java:72)
        ... 3 filtered
        at com.atlassian.oauth2.scopes.web.ReadWriteScopeFilter.doFilter(ReadWriteScopeFilter.java:48)
        ... 3 filtered
        at com.atlassian.ratelimiting.internal.filter.RateLimitFilter.doFilter(RateLimitFilter.java:77)
        ... 3 filtered
        at com.atlassian.troubleshooting.thready.filter.AbstractThreadNamingFilter.doFilter(AbstractThreadNamingFilter.java:46)
        ... 22 filtered
        at com.atlassian.jira.security.JiraSecurityFilter.lambda$doFilter$0(JiraSecurityFilter.java:68)
        ... 1 filtered
        at com.atlassian.jira.security.JiraSecurityFilter.doFilter(JiraSecurityFilter.java:66)
        ... 16 filtered
        at com.atlassian.plugins.rest.v2.servlet.RestSeraphFilter.doFilter(RestSeraphFilter.java:41)
        ... 3 filtered
        at com.atlassian.pats.web.filter.TokenBasedAuthenticationFilter.doFilter(TokenBasedAuthenticationFilter.java:84)
        ... 3 filtered
        at com.atlassian.oauth2.provider.core.web.AccessTokenFilter.doFilter(AccessTokenFilter.java:88)
        ... 19 filtered
        at com.atlassian.jira.servermetrics.CorrelationIdPopulatorFilter.doFilter(CorrelationIdPopulatorFilter.java:32)
        ... 5 filtered
        at com.atlassian.plugins.authentication.sso.web.filter.loginform.DisableNativeLoginAuthFilter.doFilterInternal(DisableNativeLoginAuthFilter.java:73)
        at com.atlassian.plugins.authentication.sso.web.filter.AbstractJohnsonAwareFilter.doFilter(AbstractJohnsonAwareFilter.java:29)
        ... 3 filtered
        at com.atlassian.plugins.authentication.basicauth.filter.DisableBasicAuthFilter.doFilter(DisableBasicAuthFilter.java:79)
        ... 3 filtered
        at com.atlassian.jwt.internal.servlet.JwtAuthFilter.doFilter(JwtAuthFilter.java:39)
        ... 8 filtered
        at com.atlassian.ratelimiting.internal.filter.RateLimitPreAuthFilter.doFilter(RateLimitPreAuthFilter.java:74)
        ... 3 filtered
        at com.atlassian.web.servlet.plugin.ThreadIdFilter.doFilter(ThreadIdFilter.java:21)
        ... 4 filtered
        at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:23)
        ... 4 filtered
        at com.atlassian.troubleshooting.thready.filter.AbstractThreadNamingFilter.doFilter(AbstractThreadNamingFilter.java:46)
        ... 3 filtered
        at com.atlassian.web.servlet.plugin.LocationCleanerFilter.doFilter(LocationCleanerFilter.java:38)
        ... 26 filtered
        at com.atlassian.jira.servermetrics.MetricsCollectorFilter.doFilter(MetricsCollectorFilter.java:27)
        ... 25 filtered
        at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190)
        at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
        at java.base/java.lang.Thread.run(Thread.java:840)

Please note that this process was working successfully with version 10.4 and earlier. We would appreciate any insights or suggestions for resolving this issue.

Hi @MariaSobiska

this version does not work correctly when it comes to support https://developer.atlassian.com/server/framework/atlassian-sdk/configuring-the-velocity-allowlist/

Even though I have correctly defined methods in atlassian-plugin.xml, on some pages they are not supported with the error in the logs.

2025-02-21 20:45:34,882+0100 http-nio-2990-exec-6 url: /jira/secure/ExtenderProjectDocumentation.jspa; user: admin WARN admin 1245x6439x1 aptbdl 0:0:0:0:0:0:0:1 /secure/ExtenderProjectDocumentation.jspa [velocity] Invocation blocked as method is not allowlisted: com.itlab.jira.plugins.extender.config.ExtenderProjectDocumentation#initValues()
2025-02-21 20:45:34,882+0100 http-nio-2990-exec-6 url: /jira/secure/ExtenderProjectDocumentation.jspa; user: admin WARN admin 1245x6439x1 aptbdl 0:0:0:0:0:0:0:1 /secure/ExtenderProjectDocumentation.jspa [velocity] Invocation blocked as method is not allowlisted: com.itlab.jira.plugins.extender.config.ExtenderProjectDocumentation#getContentBlock(java.lang.String)
 <velocity-allowlist key="extender-velocity-allowlist" name="extender-velocity-allowlist-va">
        <method>com.itlab.jira.plugins.extender.*************</method>
        <method>com.itlab.jira.plugins.extender.ClassABC#getString()</method> <!-- removed method -->        
        <method>com.itlab.jira.plugins.extender.config.ExtenderProjectDocumentation#getContentBlock(java.lang.String)</method>
        <method>com.itlab.jira.plugins.extender.config.ExtenderProjectDocumentation#initValues()</method>
        <method>com.itlab.jira.plugins.extender.*************</method>
 </velocity-allowlist>

EDIT: After some digging, I found that the issue was with a method that was removed from my app (it wasn’t being used anymore), but its definition was still in the velocity-allowlist. This led to some (random?) ignoring of other definitions. After removing the method definition from the velocity-allowlist lists, the app works like a charm!

@mkemp - I was wondering if there’s a way to add some safeguards to prevent these methods from causing issues for other methods. Or, maybe it’s worth adding some extra logs to check if the method isn’t in the class but is still listed in velocity-allowlist?

Cheers
Adam

Hi @AndreaSerra,

Bumping AMPS to 9.2.3 or above (preferably to 9.2.5 which is the latest available version) should solve your issue.

Let us know if you still experience any issues after that.

Hi @anton.miniailo,

Thanks for the suggestion—I bumped AMPS to 9.2.5 as recommended. With SDK 9.1.1 and AMPS 9.2.5 running locally, I’m now able to successfully upload my plugin to both Jira 9.12.12 and 10.5.0-M3 using the following command:

atlas-install-plugin --server ${url_eap} --username ${atl_username} --password ${atl_password} --http-port 443 --plugin-key ${atl_key} --context-path ''

However, I’m still encountering issues when deploying via GitHub Actions. In that environment, using the same SDK (9.1.1) and AMPS (9.2.5) versions, the deployment fails with the following error:

Error: Failed to execute goal com.atlassian.maven.plugins:amps-dispatcher-maven-plugin:9.2.5:install (default-cli) on project mockups: Unable to execute mojo: Execution null of goal com.atlassian.maven.plugins:atlassian-pdk:2.3.6:install failed: Plugin com.atlassian.maven.plugins:atlassian-pdk:2.3.6 or one of its dependencies could not be resolved: -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.atlassian.maven.plugins:amps-dispatcher-maven-plugin:9.2.5:install (default-cli) on project mockups: Unable to execute mojo

I’m trying to determine why the CI environment behaves differently from my local setup. Could this be related to dependency resolution or network configuration in GitHub Actions? Any additional debugging tips or configuration changes that might help resolve the issue would be greatly appreciated.

Thanks again for your help!

Here is an update regarding the issue I posted before:

I used act to run the workflow locally for troubleshooting. With the same configuration, the command works on my local machine, but fails in the Docker container used by GitHub Actions.

I run the workflow locally using act with this command:

act -W .github/workflows/release_staging.yml push -P ubuntu-24.04=ghcr.io/catthehacker/ubuntu:act-latest --container-architecture linux/amd64 --container-options "-v ${HOME}/.m2:/root/.m2"

and the build completes successfully.

Removing the mount --container-options "-v ${HOME}/.m2:/root/.m2" causes the build to fail with:

[ERROR] Failed to execute goal com.atlassian.maven.plugins:amps-dispatcher-maven-plugin:9.2.5:install ... Plugin com.atlassian.maven.plugins:atlassian-pdk:2.3.6 or one of its dependencies could not be resolved.

GitHub Action (Release staging) Snippet:

name: Release staging

on:
  push:
    branches: [ master ]
  workflow_dispatch:

jobs:
  build-staging:
    runs-on: ubuntu-24.04
    env:
      BRANCH: 999
      SDK_VERSION: "9.1.1"
      INSTALL_DIR: "/opt/atlassian-sdk"
      VERSION_FILE: "/opt/installed_atlassian_sdk_version.txt"

    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version-file: .nvmrc

      - name: Set up JDK
        uses: actions/setup-java@v4
        with:
          java-version: '17'
          distribution: 'adopt'
          cache: 'maven'

      - name: Check if Atlassian SDK is Installed
        id: check-version
        run: |
          echo VERSION_FILE is ${VERSION_FILE}
          echo SDK_VERSION is ${SDK_VERSION}
          echo INSTALL_DIR is ${INSTALL_DIR}
          if [ ! -f "${VERSION_FILE}" ]; then
            echo "Version file not found. Creating a new empty version file."
            touch "${VERSION_FILE}"
          fi
          CURRENT_VERSION=$(cat "${VERSION_FILE}" | tr -d '\n')
          echo CURRENT_VERSION is ${CURRENT_VERSION}
          if [ "${CURRENT_VERSION}" == "${SDK_VERSION}" ]; then
            echo "SDK version ${SDK_VERSION} is already installed."
            echo "skip_install=true" >> $GITHUB_ENV
          else
            echo "SDK version ${SDK_VERSION} not installed or version mismatch."
            echo "skip_install=false" >> $GITHUB_ENV
          fi

      - name: Download Atlassian SDK
        if: env.skip_install == 'false'
        run: |
          SDK_URL="https://packages.atlassian.com/mvn/maven-external/com/atlassian/amps/atlassian-plugin-sdk/${SDK_VERSION}/atlassian-plugin-sdk-${SDK_VERSION}.tar.gz"
          curl -L $SDK_URL -o atlassian-sdk.tar.gz

      - name: Install Atlassian SDK
        if: env.skip_install == 'false'
        run: |
          mkdir -p $INSTALL_DIR
          tar -xzf atlassian-sdk.tar.gz -C ${INSTALL_DIR} --strip-components=1
          echo ${SDK_VERSION} > ${VERSION_FILE}
          echo "${INSTALL_DIR}/bin" >> $GITHUB_PATH
          chmod 755 -R ${INSTALL_DIR}

      - name: test versions
        run: |
          node --version
          npm --version
          atlas-version

      - name: atlas-mvn build
        run: |
          atlas-clean
          atlas-package -Datlassian.webresource.disable.minification=true

      - name: install on sandboxes
        run: |
          atlas-install-plugin --server ${url_eap} --username ${atl_username} --password ${atl_password} --http-port 443 --plugin-key ${atl_key} --context-path '' -e
        env:
          url_eap: "your_url"
          atl_key: "your_key"
          atl_username: "admin"
          atl_password: "your_password"

I’m seeking insights into what differences might exist between my local machine and the Docker container used by GitHub Actions that could be causing Maven to fail resolving the atlassian-pdk:2.3.6 dependency.

Any guidance would be appreciated!


Compiling against Jira 10.5, we get

 Could not find artifact net.sf.ehcache:ehcache-parent:pom:5.0 

because ehcache-root-2.11.1-atlassian-1.pom has this artifact as its parent, but there is no net.sf.ehcache:ehcache-parent at all in neither in the official Maven repo, nor in Atlassian’s.

It looks like Atlassian forgot to publish the required artifact?

Full output:

Failed to execute goal on project jira.common: Could not resolve dependencies for project xxxxxxxxx: 
Failed to collect dependencies at com.atlassian.jira:jira-core:jar:10.5.0 
-> com.atlassian.crowd:embedded-crowd-core:jar:6.2.1 
-> com.atlassian.crowd:crowd-core:jar:6.2.1 
-> net.sf.ehcache:ehcache:jar:2.11.1-atlassian-1: 
Failed to read artifact descriptor for net.sf.ehcache:ehcache:jar:2.11.1-atlassian-1: 
Could not find artifact net.sf.ehcache:ehcache-parent:pom:5.0 in general-mirror 

Update: We had to add the complete list of repositories from the SDK to our pom.