Versions (relevant - OpenSearch/Dashboard/Server OS/Browser): 3.4.0
Describe the issue:
Hello,
Since our upgrade from Opensearch 2.17 to 3.4, scheduling of snapshot dosen’t work.
I can’t find any workaround to fix this problem … Any idea, or help about this issue ?
Configuration:
[DC01] admin@myserver ~ $ curl -s -XGET -u : --negotiate “https://$(hostname --fqdn):9200/_snapshot/s3-news-backup” | jq
{
“s3-news-backup”: {
“type”: “s3”,
“settings”: {
“bucket”: “prod-opensearch02-bsa-backup”,
“base_path”: “s3-news-backup”
}
}
}
[DC01] admin@myserver ~ $ curl -s -XGET -u : --negotiate “https://$(hostname --fqdn):9200/_plugins/_sm/policies/s3-backup” | jq
{
“_id”: “s3-backup-sm-policy”,
“_version”: 1,
“_seq_no”: 840427,
“_primary_term”: 12,
“sm_policy”: {
“name”: “s3-backup”,
“description”: “News daily snapshot policy”,
“schema_version”: 24,
“creation”: {
“schedule”: {
“cron”: {
“expression”: “30 3 * * *”,
“timezone”: “Europe/Paris”
}
},
“time_limit”: “4h”
},
“deletion”: {
“schedule”: {
“cron”: {
“expression”: “42 0 * * ",
“timezone”: “Europe/Paris”
}
},
“condition”: {
“max_age”: “31d”,
“min_count”: 30,
“max_count”: 42
},
“time_limit”: “4h”
},
“snapshot_config”: {
“indices”: "news”,
“ignore_unavailable”: “true”,
“timezone”: “Europe/Paris”,
“include_global_state”: “false”,
“date_format”: “yyyy-MM-dd-HH:mm”,
“repository”: “s3-backup”,
“date_format_timezone”: “Europe/Paris”,
“partial”: “false”
},
“schedule”: {
“interval”: {
“start_time”: 1774521131053,
“period”: 1,
“unit”: “Minutes”
}
},
“enabled”: true,
“last_updated_time”: 1774521131053,
“enabled_time”: 1774521131053
}
}
Relevant Logs or Screenshots:
[2026-04-01T11:21:11,047][WARN ][o.o.i.s.SMRunner ] [myserver] Cannot acquire lock for snapshot management job s3-backup
[2026-04-01T11:22:11,043][INFO ][o.o.j.t.PluginClient ] [myserver] Running transport action with subject: plugin:org.opensearch.jobscheduler.JobSchedulerPlugin
[2026-04-01T11:22:11,043][INFO ][o.o.s.p.SystemIndexAccessEvaluator] [myserver] No indices:data/read/get permission for user roles to System Indices .opendistro-job-scheduler-lock
[2026-04-01T11:22:11,044][ERROR][o.o.j.u.LockServiceImpl ] [myserver] Exception occurred finding lock
org.opensearch.OpenSearchSecurityException: no permissions for and User [name=plugin:org.opensearch.jobscheduler.JobSchedulerPlugin, backend_roles=, requestedTenant=null]
at org.opensearch.security.filter.SecurityFilter.lambda$apply0$3(SecurityFilter.java:414) [opensearch-security-3.4.0.0.jar:3.4.0.0]
at org.opensearch.security.filter.SecurityFilter.apply0(SecurityFilter.java:508) [opensearch-security-3.4.0.0.jar:3.4.0.0]
at org.opensearch.security.filter.SecurityFilter.apply(SecurityFilter.java:187) [opensearch-security-3.4.0.0.jar:3.4.0.0]
at org.opensearch.action.support.TransportAction$RequestFilterChain.proceed(TransportAction.java:218) [opensearch-3.4.0.jar:3.4.0]
at org.opensearch.performanceanalyzer.action.PerformanceAnalyzerActionFilter.apply(PerformanceAnalyzerActionFilter.java:81) [opensearch-performance-analyzer-3.4.0.0.jar:3.4.0.0]
at org.opensearch.action.support.ActionFilter.apply(ActionFilter.java:67) [opensearch-3.4.0.jar:3.4.0]
at org.opensearch.action.support.TransportAction$RequestFilterChain.proceed(TransportAction.java:218) [opensearch-3.4.0.jar:3.4.0]
at org.opensearch.action.support.TransportAction.execute(TransportAction.java:190) [opensearch-3.4.0.jar:3.4.0]
at org.opensearch.action.support.TransportAction.execute(TransportAction.java:109) [opensearch-3.4.0.jar:3.4.0]
at org.opensearch.transport.client.node.NodeClient.executeLocally(NodeClient.java:113) [opensearch-3.4.0.jar:3.4.0]
at org.opensearch.transport.client.node.NodeClient.doExecute(NodeClient.java:100) [opensearch-3.4.0.jar:3.4.0]
at org.opensearch.transport.client.support.AbstractClient.execute(AbstractClient.java:501) [opensearch-3.4.0.jar:3.4.0]
at org.opensearch.transport.client.FilterClient.doExecute(FilterClient.java:83) [opensearch-3.4.0.jar:3.4.0]
at org.opensearch.jobscheduler.transport.PluginClient.lambda$doExecute$0(PluginClient.java:56) [opensearch-job-scheduler-3.4.0.0.jar:3.4.0.0]
at org.opensearch.security.identity.SecurePluginSubject.runAs(SecurePluginSubject.java:52) [opensearch-security-3.4.0.0.jar:3.4.0.0]
at org.opensearch.jobscheduler.transport.PluginClient.doExecute(PluginClient.java:54) [opensearch-job-scheduler-3.4.0.0.jar:3.4.0.0]
at org.opensearch.transport.client.support.AbstractClient.execute(AbstractClient.java:501) [opensearch-3.4.0.jar:3.4.0]
at org.opensearch.transport.client.support.AbstractClient.get(AbstractClient.java:597) [opensearch-3.4.0.jar:3.4.0]
at org.opensearch.jobscheduler.utils.LockServiceImpl.findLock(LockServiceImpl.java:282) [opensearch-job-scheduler-3.4.0.0.jar:3.4.0.0]
at org.opensearch.jobscheduler.utils.LockServiceImpl.lambda$acquireLockWithId$0(LockServiceImpl.java:180) [opensearch-job-scheduler-3.4.0.0.jar:3.4.0.0]
at org.opensearch.core.action.ActionListener$1.onResponse(ActionListener.java:82) [opensearch-core-3.4.0.jar:3.4.0]
at org.opensearch.jobscheduler.utils.LockServiceImpl.createLockIndex(LockServiceImpl.java:102) [opensearch-job-scheduler-3.4.0.0.jar:3.4.0.0]
at org.opensearch.jobscheduler.utils.LockServiceImpl.acquireLockWithId(LockServiceImpl.java:177) [opensearch-job-scheduler-3.4.0.0.jar:3.4.0.0]
at org.opensearch.jobscheduler.utils.LockServiceImpl.acquireLock(LockServiceImpl.java:138) [opensearch-job-scheduler-3.4.0.0.jar:3.4.0.0]
at org.opensearch.indexmanagement.util.JobSchedulerUtilsKt$acquireLockForScheduledJob$2.invokeSuspend$lambda$0(JobSchedulerUtils.kt:28) [opensearch-index-management-3.4.0.0.jar:3.4.0.0]
at org.opensearch.indexmanagement.opensearchapi.OpenSearchExtensionsKt.suspendUntil(OpenSearchExtensions.kt:230) [opensearch-index-management-3.4.0.0.jar:3.4.0.0]
at org.opensearch.indexmanagement.util.JobSchedulerUtilsKt$acquireLockForScheduledJob$2.invokeSuspend(JobSchedulerUtils.kt:28) [opensearch-index-management-3.4.0.0.jar:3.4.0.0]
at org.opensearch.indexmanagement.util.JobSchedulerUtilsKt$acquireLockForScheduledJob$2.invoke(JobSchedulerUtils.kt) [opensearch-index-management-3.4.0.0.jar:3.4.0.0]
at org.opensearch.indexmanagement.util.JobSchedulerUtilsKt$acquireLockForScheduledJob$2.invoke(JobSchedulerUtils.kt) [opensearch-index-management-3.4.0.0.jar:3.4.0.0]
at org.opensearch.indexmanagement.opensearchapi.OpenSearchExtensionsKt.retry(OpenSearchExtensions.kt:175) [opensearch-index-management-3.4.0.0.jar:3.4.0.0]
at org.opensearch.indexmanagement.opensearchapi.OpenSearchExtensionsKt.retry$default(OpenSearchExtensions.kt:166) [opensearch-index-management-3.4.0.0.jar:3.4.0.0]
at org.opensearch.indexmanagement.util.JobSchedulerUtilsKt.acquireLockForScheduledJob(JobSchedulerUtils.kt:27) [opensearch-index-management-3.4.0.0.jar:3.4.0.0]
at org.opensearch.indexmanagement.snapshotmanagement.SMRunner$runJob$1.invokeSuspend(SMRunner.kt:80) [opensearch-index-management-3.4.0.0.jar:3.4.0.0]
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) [kotlin-stdlib-2.2.0.jar:2.2.0-release-294]
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108) [kotlinx-coroutines-core-jvm-1.7.3.jar:?]
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584) [kotlinx-coroutines-core-jvm-1.7.3.jar:?]
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793) [kotlinx-coroutines-core-jvm-1.7.3.jar:?]
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697) [kotlinx-coroutines-core-jvm-1.7.3.jar:?]
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684) [kotlinx-coroutines-core-jvm-1.7.3.jar:?]
[2026-04-01T11:22:11,044][ERROR][o.o.i.u.JobSchedulerUtils] [myserver] Failed to acquireLock for job s3-backup-sm-policy
org.opensearch.OpenSearchSecurityException: no permissions for and User [name=plugin:org.opensearch.jobscheduler.JobSchedulerPlugin, backend_roles=, requestedTenant=null]
at org.opensearch.security.filter.SecurityFilter.lambda$apply0$3(SecurityFilter.java:414) ~[?:?]
at org.opensearch.security.filter.SecurityFilter.apply0(SecurityFilter.java:508) ~[?:?]
at org.opensearch.security.filter.SecurityFilter.apply(SecurityFilter.java:187) ~[?:?]
at org.opensearch.action.support.TransportAction$RequestFilterChain.proceed(TransportAction.java:218) ~[opensearch-3.4.0.jar:3.4.0]
at org.opensearch.performanceanalyzer.action.PerformanceAnalyzerActionFilter.apply(PerformanceAnalyzerActionFilter.java:81) ~[?:?]
at org.opensearch.action.support.ActionFilter.apply(ActionFilter.java:67) ~[opensearch-3.4.0.jar:3.4.0]
at org.opensearch.action.support.TransportAction$RequestFilterChain.proceed(TransportAction.java:218) ~[opensearch-3.4.0.jar:3.4.0]
at org.opensearch.action.support.TransportAction.execute(TransportAction.java:190) ~[opensearch-3.4.0.jar:3.4.0]
at org.opensearch.action.support.TransportAction.execute(TransportAction.java:109) ~[opensearch-3.4.0.jar:3.4.0]
at org.opensearch.transport.client.node.NodeClient.executeLocally(NodeClient.java:113) ~[opensearch-3.4.0.jar:3.4.0]
at org.opensearch.transport.client.node.NodeClient.doExecute(NodeClient.java:100) ~[opensearch-3.4.0.jar:3.4.0]
at org.opensearch.transport.client.support.AbstractClient.execute(AbstractClient.java:501) ~[opensearch-3.4.0.jar:3.4.0]
at org.opensearch.transport.client.FilterClient.doExecute(FilterClient.java:83) ~[opensearch-3.4.0.jar:3.4.0]
at org.opensearch.jobscheduler.transport.PluginClient.lambda$doExecute$0(PluginClient.java:56) ~[?:?]
at org.opensearch.security.identity.SecurePluginSubject.runAs(SecurePluginSubject.java:52) ~[?:?]
at org.opensearch.jobscheduler.transport.PluginClient.doExecute(PluginClient.java:54) ~[?:?]
at org.opensearch.transport.client.support.AbstractClient.execute(AbstractClient.java:501) ~[opensearch-3.4.0.jar:3.4.0]
at org.opensearch.transport.client.support.AbstractClient.get(AbstractClient.java:597) ~[opensearch-3.4.0.jar:3.4.0]
at org.opensearch.jobscheduler.utils.LockServiceImpl.findLock(LockServiceImpl.java:282) ~[opensearch-job-scheduler-3.4.0.0.jar:3.4.0.0]
at org.opensearch.jobscheduler.utils.LockServiceImpl.lambda$acquireLockWithId$0(LockServiceImpl.java:180) ~[opensearch-job-scheduler-3.4.0.0.jar:3.4.0.0]
at org.opensearch.core.action.ActionListener$1.onResponse(ActionListener.java:82) ~[opensearch-core-3.4.0.jar:3.4.0]
at org.opensearch.jobscheduler.utils.LockServiceImpl.createLockIndex(LockServiceImpl.java:102) ~[opensearch-job-scheduler-3.4.0.0.jar:3.4.0.0]
at org.opensearch.jobscheduler.utils.LockServiceImpl.acquireLockWithId(LockServiceImpl.java:177) ~[opensearch-job-scheduler-3.4.0.0.jar:3.4.0.0]
at org.opensearch.jobscheduler.utils.LockServiceImpl.acquireLock(LockServiceImpl.java:138) ~[opensearch-job-scheduler-3.4.0.0.jar:3.4.0.0]
at org.opensearch.indexmanagement.util.JobSchedulerUtilsKt$acquireLockForScheduledJob$2.invokeSuspend$lambda$0(JobSchedulerUtils.kt:28) ~[opensearch-index-management-3.4.0.0.jar:3.4.0.0]
at org.opensearch.indexmanagement.opensearchapi.OpenSearchExtensionsKt.suspendUntil(OpenSearchExtensions.kt:230) ~[opensearch-index-management-3.4.0.0.jar:3.4.0.0]
at org.opensearch.indexmanagement.util.JobSchedulerUtilsKt$acquireLockForScheduledJob$2.invokeSuspend(JobSchedulerUtils.kt:28) ~[opensearch-index-management-3.4.0.0.jar:3.4.0.0]
at org.opensearch.indexmanagement.util.JobSchedulerUtilsKt$acquireLockForScheduledJob$2.invoke(JobSchedulerUtils.kt) ~[opensearch-index-management-3.4.0.0.jar:3.4.0.0]
at org.opensearch.indexmanagement.util.JobSchedulerUtilsKt$acquireLockForScheduledJob$2.invoke(JobSchedulerUtils.kt) ~[opensearch-index-management-3.4.0.0.jar:3.4.0.0]
at org.opensearch.indexmanagement.opensearchapi.OpenSearchExtensionsKt.retry(OpenSearchExtensions.kt:175) ~[opensearch-index-management-3.4.0.0.jar:3.4.0.0]
at org.opensearch.indexmanagement.opensearchapi.OpenSearchExtensionsKt.retry$default(OpenSearchExtensions.kt:166) ~[opensearch-index-management-3.4.0.0.jar:3.4.0.0]
at org.opensearch.indexmanagement.util.JobSchedulerUtilsKt.acquireLockForScheduledJob(JobSchedulerUtils.kt:27) [opensearch-index-management-3.4.0.0.jar:3.4.0.0]
at org.opensearch.indexmanagement.snapshotmanagement.SMRunner$runJob$1.invokeSuspend(SMRunner.kt:80) [opensearch-index-management-3.4.0.0.jar:3.4.0.0]
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) [kotlin-stdlib-2.2.0.jar:2.2.0-release-294]
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108) [kotlinx-coroutines-core-jvm-1.7.3.jar:?]
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584) [kotlinx-coroutines-core-jvm-1.7.3.jar:?]
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793) [kotlinx-coroutines-core-jvm-1.7.3.jar:?]
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697) [kotlinx-coroutines-core-jvm-1.7.3.jar:?]
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684) [kotlinx-coroutines-core-jvm-1.7.3.jar:?]
[2026-04-01T11:22:11,045][WARN ][o.o.i.s.SMRunner ] [myserver] Cannot acquire lock for snapshot management job s3-backup