Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Windows Smart App Control blocks unsigned conda-forge DLLs (e.g. _ctypes.pyd) after a fresh install, then allows the same file later

Open
#945 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
1/5
Estimated time
Under an hour
Newbie friendliness
42/100
Issue type
Documentation
Clarity
Clearly specified
Activity status
Active
Tech stack
python, shell
Domain
documentation

Research direction

No code or test files are identified; the issue explicitly says it is informational, not a bug report against this feedstock. Read the issue’s observations and verify any proposed documentation location with the repository maintainers. Done means the troubleshooting information is placed in an appropriate, discoverable location without presenting the suspected Microsoft reputation behavior as confirmed.

Written by the indexing model from the issue text.

Description

Not a bug report against this feedstock. Posting so others who hit this error, and the tools they use to diagnose it, can find it. These are observations from one evening on two machines, not proof of how Microsoft's service works.

Symptom

VS Code Jupyter kernel hangs on "Connecting to kernel". Launching the kernel by hand shows the real error:

& "$env:USERPROFILE\miniforge3\envs\<env>\python.exe" -m ipykernel_launcher

ImportError: DLL load failed while importing _ctypes: An Application Control policy has blocked this file.

IPython and ipykernel import ctypes at start-up, so one blocked file kills every kernel. The same error has been reported for other modules, e.g. _overlapped in conda-forge/miniforge#846.

Setup

  • Windows 11 Home, 25H2 (build 26200.9550) and 26H2 (build 26300.9550), Smart App Control on
  • Miniforge3 26.7.2-0, installed via WinGet
  • python 3.11.17 hb12b558_1_cpython, libffi 3.7.0 h3d046cb_1 (conda-forge)
  • The python package was compiled 6 Oct 2026 (per sys.version); the env was created 7 Oct 2026

Confirming it is Smart App Control

Run PowerShell as administrator:

Get-WinEvent -FilterHashtable @{LogName='Microsoft-Windows-CodeIntegrity/Operational'; Id=3077} -MaxEvents 10 | Format-List TimeCreated, Message

Look for policy ID {0283ac0f-fff1-49ae-ada1-8a933130cad6}. CiTool -lp lists it as VerifiedAndReputableDesktop, the Smart App Control enforcement policy. The event also names the exact file blocked, which may differ from the module in the traceback.

What we saw

  • Both machines had byte-identical files (SHA256 of DLLs_ctypes.pyd: 0B4AC174447A0B907392E7D6DF195DC682776F69F6FDB8B42FDECCBD416177B9). Both are unsigned (Get-AuthenticodeSignature reports NotSigned).
  • Machine A blocked _ctypes.pyd at 21:07 and 21:10. Smart App Control was turned off to keep working, then back on at about 21:54. The same unchanged file then loaded without a block.
  • Machine B blocked libexpat.dll (used by pyexpat) at 20:14. The same unchanged file loaded at about 21:47, with Smart App Control on throughout.
  • Defender cloud protection was on for both. No other App Control policy was enforced.

So the verdict on a given unchanged file went from "block" to "allow" within about 45 to 90 minutes on the same machine. Our reading: freshly built unsigned binaries have no reputation yet in Microsoft's cloud service, and the verdict updates later. Microsoft does not publish how or when this happens, so treat that as likely, not confirmed.

What to do

  1. Confirm with the event log command above.
  2. Wait and retry. In our case the block lifted within 45 to 90 minutes.
  3. Or turn Smart App Control off: Windows Security > App & browser control > Smart App Control. Since the April 2026 cumulative update (KB5083769) it can be turned back on without reinstalling Windows.

Smart App Control has no way to allow individual files. Defender exclusions do not affect it. Expect this to recur when conda or pip pulls freshly built packages.

Dominant language
Shell
Stars
47
Forks
114
Avg merge
7d 6h
Merged PRs (30d)
14

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from conda-forge/python-feedstock

All issues in conda-forge/python-feedstock

Similar issues

More Shell/Bash issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.