Skip to content
Latchkey

ansible-lint "fqcn[action-core]" violation in CI

ansible-lint requires fully qualified collection names. fqcn[action-core] fires when a task uses a short builtin name like copy or command instead of ansible.builtin.copy. It is auto-fixable.

What this error means

ansible-lint reports "fqcn[action-core]: Use FQCN for builtin module actions (copy)" and suggests the ansible.builtin. prefixed name.

ansible-lint
fqcn[action-core]: Use FQCN for builtin module actions (copy).
Use `ansible.builtin.copy` instead.
roles/webserver/tasks/main.yml:8

Common causes

Tasks use short builtin module names

Older playbooks call copy, command, or service without the ansible.builtin. prefix, which the fqcn rule flags.

A stricter profile enabled the rule

Moving to a higher ansible-lint profile turns fqcn into a hard failure rather than a warning.

How to fix it

Auto-fix with ansible-lint --fix

ansible-lint can rewrite short names to their FQCN form automatically.

Terminal
ansible-lint --fix

Use the FQCN in tasks

Prefix builtin modules with ansible.builtin..

tasks/main.yml
- name: Deploy config
  ansible.builtin.copy:
    src: app.conf
    dest: /etc/app/app.conf

How to prevent it

  • Write new tasks with FQCN module names from the start.
  • Run ansible-lint --fix to migrate legacy short names.
  • Keep the lint profile consistent between local and CI.

Related guides

Tired of flaky CI? Latchkey auto-heals failed jobs and retries them for you. Start free →