Troubleshooting

Error Reference

ValueError: ambiguous name; it matches:

FieldDetail
ContextPython API — frida.attach()
Root causeThe process name string matches more than one running process
FixUse the numeric PID instead of the process name
1# Wrong: name matches multiple processes
2session = frida.attach("myapp")
3
4# Correct: use PID
5session = frida.attach(12345)

How to find the PID:

1frida-ps            # list all processes with PIDs
2frida-ps -a         # include all processes (not just user-visible apps)
3frida-ps -D <id>    # target a specific device

SystemError: attach_to_process PTRACE_ATTACH failed: 1

FieldDetail
PlatformLinux (and Android)
Root cause (common)Insufficient permissions: target process owned by another user, or caller is not root
Root cause (Android)Magisk Hide is active, blocking ptrace from Frida

Fix — Linux ptrace scope:

1# Temporarily allow ptrace of non-child processes (resets on reboot)
2sudo sysctl kernel.yama.ptrace_scope=0

kernel.yama.ptrace_scope values: 0 = unrestricted, 1 = restricted to parent/child (default on many distros), 2 = admin-only, 3 = no ptrace at all.

Fix — Android / Magisk Hide:

  1. Open Magisk → Magisk Hide (or DenyList in newer Magisk).
  2. Remove or disable the entry for Frida / your target app.
  3. Reboot the device.
  4. Re-run your Frida command.

Reference: frida/frida#824 (comment)


Failed to spawn: unexpected error while spawning child process 'XXX' (task_for_pid returned '(os/kern) failure')

FieldDetail
PlatformmacOS
Root cause (common)Frida binary is not properly code-signed or is missing the task_for_pid-allow entitlement
Root cause (SSH)Running Frida over SSH — no access to the authentication dialog that grants task_for_pid interactively

Fix — grant taskport permission (use with caution):

1# WARNING: This weakens system security. Revert after use.
2sudo security authorizationdb write system.privilege.taskport allow

Fix — code signing: Follow the Mac and iOS signing procedure in the Frida README.

Fix — system binaries: To instrument macOS system binaries you must disable System Integrity Protection (SIP):

1# Boot into Recovery Mode, then:
2csrutil disable
3# WARNING: Disabling SIP significantly weakens macOS security.
4# Re-enable after you are done: csrutil enable

ImportError: dynamic module does not define init function (init_frida)

FieldDetail
Root causefrida-python was compiled for Python 2.x but the interpreter is Python 3.x, or vice versa
VariantAny “does not define init function” message from the _frida extension module

Diagnostic steps:

 1# Check which Python interpreter is active
 2python --version
 3python3 --version
 4which python
 5which python3
 6
 7# Check what frida-python was installed for
 8pip show frida          # uses pip linked to python2
 9pip3 show frida         # uses pip linked to python3
10
11# Check sys.path at runtime
12python -c "import sys; print(sys.version); print(sys.path)"

Common causes and fixes:

CauseFix
PYTHONPATH points to a package built for a different Python versionUnset or correct PYTHONPATH
Multiple Python installs; pip and python resolve to different onesUse python -m pip install frida to ensure the same interpreter
Virtual environment mismatchActivate the correct venv before installing and running
1# Reinstall frida into the exact interpreter you intend to use
2python3 -m pip uninstall frida
3python3 -m pip install frida