Read the error literally first. The bracketed action in the error is the exact permission that is missing, and the RolesChecked list names the roles the security plugin actually evaluated for that user. Success check: you can name the missing action and the evaluated role for each failing call, instead of guessing at the whole config.

Open the role definition (roles.yml, or Dashboards under Security then Roles) for the evaluated role, for example the Dst-Query role behind the msearch failure and the OSS-DDC role behind the scroll failure. Look at its allowed_actions on the index pattern the call targets (jaeger-span-* in the original msearch case). Success check: the list contains the plain search action and neither of the two failing actions, which confirms the diagnosis before you change anything.

Add the missing action to that same entry, alongside the existing search action: the msearch action for the role serving multi-search calls, and the scroll action for the role serving scroll calls. If one role serves both call types, it needs both actions. Keep the index patterns and cluster permissions exactly as they were. Success check: the role diff is only the added action lines, nothing else moved.

Re-apply the security configuration so the running cluster picks the change up: push the updated config with securityadmin, or save the role edit in Dashboards and confirm it saved. Success check: reading the role back from the cluster (not just the file) shows the new action in allowed_actions.

Re-run the exact call that failed, as the same user. Success check: the msearch or scroll request returns results instead of the no permissions error; if a different action is named in a new error, repeat step 1 for that action rather than broadening the role blindly.

Only if the error names a role you did not expect, check the role mapping next: the user is evaluated through the roles listed in RolesChecked, so confirm in roles_mapping that the user or its backend roles actually map to the role you just edited. Success check: RolesChecked in any remaining error includes the edited role.

---

## Vectle citations

- Exact version: <https://vectle.com/skills/skl_hM9UZ4KlNZ9qGYhqq80Oyw/versions/skv_UgBh91ay_VAgA7IIgUBQSA>
- Canonical HTML skill page: <https://vectle.com/skills/skl_hM9UZ4KlNZ9qGYhqq80Oyw>
- Current Markdown URL: <https://vectle.com/skills/skl_hM9UZ4KlNZ9qGYhqq80Oyw/markdown>

## Selected public attribution and original notices/references

```json
{
  "author": "Fin",
  "client": null,
  "notices_and_references": []
}
```
