JakeYallop / JakeYallop/WaybackDownloader
Crashing "gracefully"
- Dominant language
- C#
- Stars
- 12
- Forks
- 1
- PR merge metrics
- No merged PRs in 30d
Description
C:\Users\Kingdel\Downloads>WaybackDownloader-win-x64.exe "www.cellphonetaskforce.org" "./cellphonetaskforce" --clearHistory --from 20250223 --to 20250225 -m domain -f !statuscode:404 -f !mimetype:text/html
Wayback Downloader v1.0.0
Match URL: www.cellphonetaskforce.org
Match type: domain
From: 20250223
To: 20250225
Filters:
!statuscode:404
!mimetype:text/html
Rate limit (pages/second): 5
Output directory: ./cellphonetaskforce
Checkpoints directory: ./downloadHistory
Clear history: true Clearing all history on pages that previously been downloaded.
01:56:38 info Requesting page 0 of snapshot list,
https://web.archive.org/cdx/search/cdx?url=www.cellphonetaskforce.org&matchType=domain&from=20250223&to=20250225&collapse=digest&page=0
Files Written: 0, Files Skipped: 0, Files Updated: 0
01:56:42 info Could not evaluate if new workers are required to meet requested dowload speeds as no statistics were available
01:56:43 info Requesting page 1 of snapshot list,
https://web.archive.org/cdx/search/cdx?url=www.cellphonetaskforce.org&matchType=domain&from=20250223&to=20250225&collapse=digest&page=1
01:56:44 info Written page C:\Users\Kingdel\Downloads\cellphonetaskforce\index_p=2066.html, https://cellphonetaskforce.org/?p=2066,
timestamp: 20250225124942
01:56:44 warn Request for page 'https://cellphonetaskforce.org/%3C?php%20bloginfo('template_directory' was unsuccessful. StatusCode: 404
Files Written: 1, Files Skipped: 0, Files Updated: 0
01:56:44 info Written page C:\Users\Kingdel\Downloads\cellphonetaskforce\index.html, http://www.cellphonetaskforce.org/, timestamp:
20250224141444
Files Written: 2, Files Skipped: 1, Files Updated: 0
Files Written: 2, Files Skipped: 1, Files Updated: 0
01:56:53 warn Failed to parse some CDX fields, record will be skipped. Original string 'org,cellphonetaskforce)/feed 20250224051734
https://cellphonetaskforce.org/feed/ warc/revisit - ULXTS2BG2NME5Y72F6OD23VCH57EMPNA 710'.
01:56:53 info Requesting page 2 of snapshot list,
https://web.archive.org/cdx/search/cdx?url=www.cellphonetaskforce.org&matchType=domain&from=20250223&to=20250225&collapse=digest&page=2
01:56:53 warn Failed to parse some CDX fields, record will be skipped. Original string 'org,cellphonetaskforce)/robots.txt 20250223091145
https://www.cellphonetaskforce.org/robots.txt warc/revisit - 5S2OB6LK7EHO74WNBNVLNE6ZBB5VRYTI 660'.
01:56:53 info Requesting page 3 of snapshot list,
https://web.archive.org/cdx/search/cdx?url=www.cellphonetaskforce.org&matchType=domain&from=20250223&to=20250225&collapse=digest&page=3
01:56:53 warn Request for page 'https://cellphonetaskforce.org/newsletters/%3C?php%20bloginfo('template_directory' was unsuccessful.
StatusCode: 404
01:56:53 info Written page C:\Users\Kingdel\Downloads\cellphonetaskforce\newsletters/embed/index.html,
https://cellphonetaskforce.org/newsletters/embed/, timestamp: 20250225124934
01:56:53 info Written page C:\Users\Kingdel\Downloads\cellphonetaskforce\frogs/index.html, https://cellphonetaskforce.org/frogs/, timestamp:
20250224192628
01:56:53 info Written page C:\Users\Kingdel\Downloads\cellphonetaskforce\newsletters/index.html,
https://cellphonetaskforce.org/newsletters/, timestamp: 20250225124936
01:56:53 warn
Files Written: 5, Files Skipped: 1, Files Updated: 0
Files Written: 7, Files Skipped: 1, Files Updated: 0
Files Written: 16, Files Skipped: 1, Files Updated: 0
Exception encountered. Attempting to gracefully shutdown.
System.NullReferenceException: Object reference not set to an instance of an object.
at bool Spectre.Console.ExceptionFormatter.TryGetTupleName(ParameterInfo , Type , out string ) in
/_/src/Spectre.Console/Widgets/Exceptions/ExceptionFormatter.cs:319
at string Spectre.Console.ExceptionFormatter.GetParameterName(ParameterInfo ) in /_/src/Spectre.Console/Widgets/Exceptions/
ExceptionFormatter.cs:285
at string Spectre.Console.ExceptionFormatter.<>c__DisplayClass4_0.b__0(ParameterInfo x) in
/_/src/Spectre.Console/Widgets/Exceptions/ExceptionFormatter.cs:126
at bool System.Linq.Enumerable.SelectArrayIterator`2.MoveNext()
at string System.String.Join(string separator, IEnumerable values)
at void Spectre.Console.ExceptionFormatter.AppendParameters(StringBuilder , MethodBase , ExceptionSettings ) in
/_/src/Spectre.Console/Widgets/Exceptions/ExceptionFormatter.cs:130
at Grid Spectre.Console.ExceptionFormatter.GetStackFrames(Exception , ExceptionSettings ) in /_/src/Spectre.Console/Widgets/Exceptions/
ExceptionFormatter.cs:91
at IRenderable Spectre.Console.ExceptionFormatter.GetException(Exception , ExceptionSettings ) in
/_/src/Spectre.Console/Widgets/Exceptions/ExceptionFormatter.cs:22
at IRenderable Spectre.Console.ExceptionFormatter.Format(Exception , ExceptionSettings ) in /_/src/Spectre.Console/Widgets/Exceptions/
ExceptionFormatter.cs:12
at IRenderable Spectre.Console.ExceptionExtensions.GetRenderable(Exception , ExceptionSettings ) in /_/src/Spectre.Console/Extensions/
ExceptionExtensions.cs:45
at IRenderable Spectre.Console.ExceptionExtensions.GetRenderable(Exception , ExceptionFormats ) in /_/src/Spectre.Console/Extensions/
ExceptionExtensions.cs:21
at async Task Ui.DrawUiAsync(CancellationToken )
at async Task WaybackDownloader.DefaultCommand.ExecuteAsync(CommandContext , Settings , CancellationToken )
Shutting down...
Shutdown gracefully. Original exception:
System.NullReferenceException: Object reference not set to an instance of an object.
at bool Spectre.Console.ExceptionFormatter.TryGetTupleName(ParameterInfo , Type , out string ) in
/_/src/Spectre.Console/Widgets/Exceptions/ExceptionFormatter.cs:319
at string Spectre.Console.ExceptionFormatter.GetParameterName(ParameterInfo ) in /_/src/Spectre.Console/Widgets/Exceptions/
ExceptionFormatter.cs:285
at string Spectre.Console.ExceptionFormatter.<>c__DisplayClass4_0.b__0(ParameterInfo x) in
/_/src/Spectre.Console/Widgets/Exceptions/ExceptionFormatter.cs:126
at bool System.Linq.Enumerable.SelectArrayIterator`2.MoveNext()
at string System.String.Join(string separator, IEnumerable values)
at void Spectre.Console.ExceptionFormatter.AppendParameters(StringBuilder , MethodBase , ExceptionSettings ) in
/_/src/Spectre.Console/Widgets/Exceptions/ExceptionFormatter.cs:130
at Grid Spectre.Console.ExceptionFormatter.GetStackFrames(Exception , ExceptionSettings ) in /_/src/Spectre.Console/Widgets/Exceptions/
ExceptionFormatter.cs:91
at IRenderable Spectre.Console.ExceptionFormatter.GetException(Exception , ExceptionSettings ) in
/_/src/Spectre.Console/Widgets/Exceptions/ExceptionFormatter.cs:22
at IRenderable Spectre.Console.ExceptionFormatter.Format(Exception , ExceptionSettings ) in /_/src/Spectre.Console/Widgets/Exceptions/
ExceptionFormatter.cs:12
at IRenderable Spectre.Console.ExceptionExtensions.GetRenderable(Exception , ExceptionSettings ) in /_/src/Spectre.Console/Extensions/
ExceptionExtensions.cs:45
at IRenderable Spectre.Console.ExceptionExtensions.GetRenderable(Exception , ExceptionFormats ) in /_/src/Spectre.Console/Extensions/
ExceptionExtensions.cs:21
at async Task Ui.DrawUiAsync(CancellationToken )
at async Task WaybackDownloader.DefaultCommand.ExecuteAsync(CommandContext , Settings , CancellationToken )
Contributor guide
No contributing guide indexed for this repository
Research direction
Reproduce the Windows command shown in the issue and start at Ui.DrawUiAsync and WaybackDownloader.DefaultCommand.ExecuteAsync, where the logged Spectre.Console exception occurs. Trace why the original exception is unavailable during graceful shutdown; done means the command shuts down without a secondary NullReferenceException and exposes the underlying failure.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- cli
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100