Skip to content

SwiftLint 0.63.0 crashes on macOS 26 #6425

@thorstenstark

Description

@thorstenstark

New Issue Checklist

Bug Description

After updating SwiftLint from 0.62.2 to 0.63.0 it crashes on every start on macOS 26. I also tried removing and reinstalling SwiftLint, same result.

$ swiftlint lint 

Output (zsh):

Linting Swift files in current working directory
zsh: bus error  swiftlint

Output (bash):

Linting Swift files in current working directory
Bus error: 10

Crash Report

-------------------------------------
Translated Report (Full Report Below)
-------------------------------------
Process:             swiftlint [15643]
Path:                /opt/homebrew/*/swiftlint
Identifier:          swiftlint
Version:             ???
Code Type:           ARM-64 (Native)
Role:                Unspecified
Parent Process:      zsh [97390]
Coalition:           dev.warp.Warp-Stable [11420]
Responsible Process: stable [97313]
User ID:             501

Date/Time:           2026-01-09 11:43:34.0346 +0100
Launch Time:         2026-01-09 11:43:33.0241 +0100
Hardware Model:      Mac16,8
OS Version:          macOS 26.2 (25C56)
Release Type:        User

Crash Reporter Key:  C36BB5B8-7B0F-1048-64C6-BC6666227B06
Incident Identifier: D6424931-47C1-4329-8FA9-84BD374503A1

Sleep/Wake UUID:       37ED04FF-1939-4EFA-BC6C-64652BB1F9AC

Time Awake Since Boot: 94000 seconds
Time Since Wake:       83809 seconds

System Integrity Protection: enabled

Triggered by Thread: 10, Dispatch Queue: com.apple.root.default-qos

Exception Type:    EXC_BAD_ACCESS (SIGBUS)
Exception Subtype: KERN_PROTECTION_FAILURE at 0x000000016bdcbd3c
Exception Message: Thread stack size exceeded due to excessive recursion
Exception Codes:   0x0000000000000002, 0x000000016bdcbd3c
Thread 10 Crashed::  Dispatch queue: com.apple.root.default-qos
0    CoreFoundation                	       0x19741b628 __CFStringCreateImmutableFunnel3 + 116
1    CoreServicesInternal          	       0x19b694458 SetNameAndHiddenFlagsFromCString(__CFAllocator const*, char const*, long, _FileAttributes*) + 76
2    CoreServicesInternal          	       0x19b6bdc80 parseAttributeBuffer(__CFAllocator const*, unsigned char const*, unsigned char, attrlist const*, void const*, void**, _FileAttributes*, unsigned int*, unsigned char) + 396
3    CoreServicesInternal          	       0x19b693f68 corePropertyProviderPrepareValues(__CFURL const*, __FileCache*, __CFString const* const*, void const**, long, void const*, __CFError**) + 1424
4    CoreServicesInternal          	       0x19b693964 prepareValuesForBitmap(__CFURL const*, __FileCache*, _FilePropertyBitmap*, __CFError**) + 460
5    CoreServicesInternal          	       0x19b69bf44 _FSURLCopyResourcePropertiesForKeysInternal(__CFURL const*, __CFArray const*, void*, __CFError**, unsigned char) + 1140
6    CoreFoundation                	       0x197479b14 CFURLCopyResourcePropertiesForKeys + 100
7    CoreFoundation                	       0x1975badcc -[NSURL resourceValuesForKeys:error:] + 96
8    Foundation                    	       0x199617604 +[NSFileAttributes _populateCatInfo:forURL:statInfo:error:] + 144
9    Foundation                    	       0x199617844 +[NSFileAttributes _attributesAtPath:partialReturn:filterResourceFork:error:] + 288
10   Foundation                    	       0x19961d3a8 -[NSFileManager enumeratorAtPath:] + 36
11   swiftlint                     	       0x104abf6f4 NSFileManager.collectFiles(atPath:excluder:) + 256
12   swiftlint                     	       0x104abfc88 closure #1 in NSFileManager.collectFiles(atPath:excluder:) + 128
13   swiftlint                     	       0x104a1db60 partial apply for thunk for @callee_guaranteed @Sendable (@in_guaranteed A) -> (@owned [A1]) + 24
14   swiftlint                     	       0x104a1ce3c closure #1 in closure #1 in closure #1 in Array.parallelMap<A>(transform:) + 192
15   libswiftDispatch.dylib        	       0x1b0ef6008 partial apply for thunk for @callee_guaranteed (@unowned Int) -> () + 28
16   libswiftDispatch.dylib        	       0x1b0ef6034 thunk for @escaping @callee_guaranteed (@unowned Int) -> () + 32
17   libdispatch.dylib             	       0x197236aec _dispatch_client_callout2 + 16
18   libdispatch.dylib             	       0x1972319a0 _dispatch_apply_serial + 164
19   libdispatch.dylib             	       0x197236ad4 _dispatch_client_callout + 16
-------- RECURSION LEVEL 252
20   libdispatch.dylib             	       0x197223550 _dispatch_sync_function_invoke + 52
21   libdispatch.dylib             	       0x197231004 _dispatch_apply_with_attr_f + 1424
22   libdispatch.dylib             	       0x19723111c dispatch_apply + 96
23   libswiftDispatch.dylib        	       0x1b0ef60c0 _swift_dispatch_apply_current + 128
24   libswiftDispatch.dylib        	       0x1b0ef5f9c static OS_dispatch_queue.concurrentPerform(iterations:execute:) + 196
25   swiftlint                     	       0x104a1cd54 closure #1 in closure #1 in Array.parallelMap<A>(transform:) + 136
26   swiftlint                     	       0x104a1dd4c partial apply for closure #1 in closure #1 in Array.parallelMap<A>(transform:) + 24
27   swiftlint                     	       0x104a1d5d8 _ArrayBuffer.withUnsafeBufferPointer<A, B>(_:) + 260
28   swiftlint                     	       0x104a1ced8 Array.withUnsafeBufferPointer<A, B>(_:) + 76
29   swiftlint                     	       0x104a1cc50 closure #1 in Array.parallelMap<A>(transform:) + 164
30   swiftlint                     	       0x104a1c7c0 Array.parallelMap<A>(transform:) + 284
31   swiftlint                     	       0x104a1ca10 Array.parallelFlatMap<A>(transform:) + 88
32   swiftlint                     	       0x104abfbb0 NSFileManager.collectFiles(atPath:excluder:) + 1468
33   swiftlint                     	       0x104abfc88 closure #1 in NSFileManager.collectFiles(atPath:excluder:) + 128
34   swiftlint                     	       0x104a1db60 partial apply for thunk for @callee_guaranteed @Sendable (@in_guaranteed A) -> (@owned [A1]) + 24
35   swiftlint                     	       0x104a1ce3c closure #1 in closure #1 in closure #1 in Array.parallelMap<A>(transform:) + 192
36   libswiftDispatch.dylib        	       0x1b0ef6008 partial apply for thunk for @callee_guaranteed (@unowned Int) -> () + 28
37   libswiftDispatch.dylib        	       0x1b0ef6034 thunk for @escaping @callee_guaranteed (@unowned Int) -> () + 32
38   libdispatch.dylib             	       0x197236aec _dispatch_client_callout2 + 16
39   libdispatch.dylib             	       0x1972319a0 _dispatch_apply_serial + 164
40   libdispatch.dylib             	       0x197236ad4 _dispatch_client_callout + 16
-------- RECURSION LEVEL 251
41   libdispatch.dylib             	       0x197223550 _dispatch_sync_function_invoke + 52
42   libdispatch.dylib             	       0x197231004 _dispatch_apply_with_attr_f + 1424
43   libdispatch.dylib             	       0x19723111c dispatch_apply + 96
44   libswiftDispatch.dylib        	       0x1b0ef60c0 _swift_dispatch_apply_current + 128
45   libswiftDispatch.dylib        	       0x1b0ef5f9c static OS_dispatch_queue.concurrentPerform(iterations:execute:) + 196
46   swiftlint                     	       0x104a1cd54 closure #1 in closure #1 in Array.parallelMap<A>(transform:) + 136
47   swiftlint                     	       0x104a1dd4c partial apply for closure #1 in closure #1 in Array.parallelMap<A>(transform:) + 24
48   swiftlint                     	       0x104a1d5d8 _ArrayBuffer.withUnsafeBufferPointer<A, B>(_:) + 260
49   swiftlint                     	       0x104a1ced8 Array.withUnsafeBufferPointer<A, B>(_:) + 76
50   swiftlint                     	       0x104a1cc50 closure #1 in Array.parallelMap<A>(transform:) + 164
51   swiftlint                     	       0x104a1c7c0 Array.parallelMap<A>(transform:) + 284
52   swiftlint                     	       0x104a1ca10 Array.parallelFlatMap<A>(transform:) + 88
53   swiftlint                     	       0x104abfbb0 NSFileManager.collectFiles(atPath:excluder:) + 1468
54   swiftlint                     	       0x104abfc88 closure #1 in NSFileManager.collectFiles(atPath:excluder:) + 128
55   swiftlint                     	       0x104a1db60 partial apply for thunk for @callee_guaranteed @Sendable (@in_guaranteed A) -> (@owned [A1]) + 24
56   swiftlint                     	       0x104a1ce3c closure #1 in closure #1 in closure #1 in Array.parallelMap<A>(transform:) + 192
57   libswiftDispatch.dylib        	       0x1b0ef6008 partial apply for thunk for @callee_guaranteed (@unowned Int) -> () + 28
58   libswiftDispatch.dylib        	       0x1b0ef6034 thunk for @escaping @callee_guaranteed (@unowned Int) -> () + 32
59   libdispatch.dylib             	       0x197236aec _dispatch_client_callout2 + 16
60   libdispatch.dylib             	       0x1972319a0 _dispatch_apply_serial + 164
61   libdispatch.dylib             	       0x197236ad4 _dispatch_client_callout + 16
-------- RECURSION LEVEL 250
--------
-------- ELIDED 246 LEVELS OF RECURSION THROUGH 0x197236ad4 _dispatch_client_callout + 16
--------
5228 libdispatch.dylib             	       0x197223550 _dispatch_sync_function_invoke + 52
5229 libdispatch.dylib             	       0x197231004 _dispatch_apply_with_attr_f + 1424
5230 libdispatch.dylib             	       0x19723111c dispatch_apply + 96
5231 libswiftDispatch.dylib        	       0x1b0ef60c0 _swift_dispatch_apply_current + 128
5232 libswiftDispatch.dylib        	       0x1b0ef5f9c static OS_dispatch_queue.concurrentPerform(iterations:execute:) + 196
5233 swiftlint                     	       0x104a1cd54 closure #1 in closure #1 in Array.parallelMap<A>(transform:) + 136
5234 swiftlint                     	       0x104a1dd4c partial apply for closure #1 in closure #1 in Array.parallelMap<A>(transform:) + 24
5235 swiftlint                     	       0x104a1d5d8 _ArrayBuffer.withUnsafeBufferPointer<A, B>(_:) + 260
5236 swiftlint                     	       0x104a1ced8 Array.withUnsafeBufferPointer<A, B>(_:) + 76
5237 swiftlint                     	       0x104a1cc50 closure #1 in Array.parallelMap<A>(transform:) + 164
5238 swiftlint                     	       0x104a1c7c0 Array.parallelMap<A>(transform:) + 284
5239 swiftlint                     	       0x104a1ca10 Array.parallelFlatMap<A>(transform:) + 88
5240 swiftlint                     	       0x104abfbb0 NSFileManager.collectFiles(atPath:excluder:) + 1468
5241 swiftlint                     	       0x104abfc88 closure #1 in NSFileManager.collectFiles(atPath:excluder:) + 128
5242 swiftlint                     	       0x104a1db60 partial apply for thunk for @callee_guaranteed @Sendable (@in_guaranteed A) -> (@owned [A1]) + 24
5243 swiftlint                     	       0x104a1ce3c closure #1 in closure #1 in closure #1 in Array.parallelMap<A>(transform:) + 192
5244 libswiftDispatch.dylib        	       0x1b0ef6008 partial apply for thunk for @callee_guaranteed (@unowned Int) -> () + 28
5245 libswiftDispatch.dylib        	       0x1b0ef6034 thunk for @escaping @callee_guaranteed (@unowned Int) -> () + 32
5246 libdispatch.dylib             	       0x197236aec _dispatch_client_callout2 + 16
5247 libdispatch.dylib             	       0x1972319a0 _dispatch_apply_serial + 164
5248 libdispatch.dylib             	       0x197236ad4 _dispatch_client_callout + 16
-------- RECURSION LEVEL 3
5249 libdispatch.dylib             	       0x197223550 _dispatch_sync_function_invoke + 52
5250 libdispatch.dylib             	       0x197231004 _dispatch_apply_with_attr_f + 1424
5251 libdispatch.dylib             	       0x19723111c dispatch_apply + 96
5252 libswiftDispatch.dylib        	       0x1b0ef60c0 _swift_dispatch_apply_current + 128
5253 libswiftDispatch.dylib        	       0x1b0ef5f9c static OS_dispatch_queue.concurrentPerform(iterations:execute:) + 196
5254 swiftlint                     	       0x104a1cd54 closure #1 in closure #1 in Array.parallelMap<A>(transform:) + 136
5255 swiftlint                     	       0x104a1dd4c partial apply for closure #1 in closure #1 in Array.parallelMap<A>(transform:) + 24
5256 swiftlint                     	       0x104a1d5d8 _ArrayBuffer.withUnsafeBufferPointer<A, B>(_:) + 260
5257 swiftlint                     	       0x104a1ced8 Array.withUnsafeBufferPointer<A, B>(_:) + 76
5258 swiftlint                     	       0x104a1cc50 closure #1 in Array.parallelMap<A>(transform:) + 164
5259 swiftlint                     	       0x104a1c7c0 Array.parallelMap<A>(transform:) + 284
5260 swiftlint                     	       0x104a1ca10 Array.parallelFlatMap<A>(transform:) + 88
5261 swiftlint                     	       0x104abfbb0 NSFileManager.collectFiles(atPath:excluder:) + 1468
5262 swiftlint                     	       0x104abfc88 closure #1 in NSFileManager.collectFiles(atPath:excluder:) + 128
5263 swiftlint                     	       0x104a1db60 partial apply for thunk for @callee_guaranteed @Sendable (@in_guaranteed A) -> (@owned [A1]) + 24
5264 swiftlint                     	       0x104a1ce3c closure #1 in closure #1 in closure #1 in Array.parallelMap<A>(transform:) + 192
5265 libswiftDispatch.dylib        	       0x1b0ef6008 partial apply for thunk for @callee_guaranteed (@unowned Int) -> () + 28
5266 libswiftDispatch.dylib        	       0x1b0ef6034 thunk for @escaping @callee_guaranteed (@unowned Int) -> () + 32
5267 libdispatch.dylib             	       0x197236aec _dispatch_client_callout2 + 16
5268 libdispatch.dylib             	       0x1972317f8 _dispatch_apply_invoke3 + 336
5269 libdispatch.dylib             	       0x197236ad4 _dispatch_client_callout + 16
-------- RECURSION LEVEL 2
5270 libdispatch.dylib             	       0x19721fa60 _dispatch_once_callout + 32
5271 libdispatch.dylib             	       0x197230938 _dispatch_apply_invoke + 252
5272 libdispatch.dylib             	       0x197236ad4 _dispatch_client_callout + 16
-------- RECURSION LEVEL 1
5273 libdispatch.dylib             	       0x1972539dc <deduplicated_symbol> + 32
5274 libdispatch.dylib             	       0x19722f13c _dispatch_root_queue_drain + 736
5275 libdispatch.dylib             	       0x19722f784 _dispatch_worker_thread2 + 180
5276 libsystem_pthread.dylib       	       0x1973d5e10 _pthread_wqthread + 232
5277 libsystem_pthread.dylib       	       0x1973d4b9c start_wqthread + 8

Environment

  • SwiftLint version 0.63.0
  • Xcode version Xcode 26.2 Build version 17C52
  • macOS 26.2
  • Installation method used: Homebrew
  • Configuration file:
disabled_rules:
  - identifier_name
  - line_length
  - unused_closure_parameter
  - multiple_closures_with_trailing_closure
  - function_name_whitespace
  - implicit_getter
  - weak_delegate
  - redundant_string_enum_value
  - todo
  - inclusive_language
  - comment_spacing
  - orphaned_doc_comment
  - switch_case_alignment
  - unneeded_override
  - non_optional_string_data_conversion
  - static_over_final_class

opt_in_rules:
  - implicitly_unwrapped_optional
  - force_unwrapping
  - conditional_returns_on_newline # Disallows onelines such as `guard let this = self else { return }`

excluded:
  - Pods
  - vendor
  - Unused
  - DerivedData
  - Build
  - Carthage
  - wtrResources/Sources/Assets
  - wtrREST/Generated

cyclomatic_complexity:
  warning: 24
  error: 36
large_tuple:
  warning: 2
  error: 10
shorthand_operator:
  severity: warning
type_name:
  max_length:
    warning: 60
function_body_length:
  warning: 80
  error: 120
file_length:
   warning: 450
   error: 600
type_body_length:
   warning: 320
   error: 500

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions