Java: WARNING: Unknown module: PDF4Teachers.merged.module specified to –add-exports

Summary The issue at hand is a Java module resolution problem. When packaging the PDF4Teachers software using jlink, a warning is raised about an unknown module PDF4Teachers.merged.module specified in –add-reads and –add-exports options. This warning leads to a subsequent error when trying to open a PDF file, resulting in an IllegalAccessError due to the module … Read more

Google Geocoding API Error: “API keys with referer restrictions cannot be used with this API”

Summary A developer attempted to secure a Google Geocoding API key by applying HTTP referrer restrictions intended for browser-based client-side usage. This caused the API to reject all requests with the error REQUEST_DENIED. The core conflict is that the Geocoding API requires either an unrestricted key or a secure server-side key; it explicitly prohibits the … Read more

Can Python install packages on a shorter path on Windows?

Summary A developer on a locked-down Windows machine encountered pip install grpcio failing with WinError 206 (The filename or extension is too long). This happened because the grpcio source distribution requires deep directory nesting and long filenames during the build process, exceeding the default Windows MAX_PATH limit of 260 characters, even after redirecting TEMP environment … Read more

How to test third-party libraries in Vitest without using prototype?

Summary A developer asked how to properly test a utility function (isSafari) that relies on the UAParser class from ua-parser-js. The proposed solution mocks the third-party class by overriding its prototype methods directly in Vitest. While this technically passes tests, it violates fundamental testing principles and TypeScript linting rules. The core issue is that manipulating … Read more

How to rotate logs of unrealengine application?

Summary This postmortem addresses a critical logging misconfiguration in long-running Unreal Engine applications (LiveLink/MetaHuman projects) that results in unbounded log file growth, potential disk exhaustion, and inability to rotate active log files due to Windows file handle locking. The core issue is that Unreal Engine opens log files in exclusive write mode without built-in rotation … Read more

NoMachine Headless Server

Summary The “Session Negotiation Failed” error in a NoMachine headless server setup typically indicates a mismatch between the NoMachine session transport and the underlying X11/X server configuration. The specific error ui_init(), failed to open X11 display: The X11Forwarding is already enabled suggests a conflict where the NoMachine session manager is attempting to start a local … Read more

GraphDB reasoning with custom Ruleset

Summary A developer attempted to extend GraphDB’s default reasoning capabilities by combining a custom .pie ruleset with the built-in OWL2-RL profile. The core challenge was locating the default GraphDB OWL2-RL ruleset file to merge with custom logic. The resolution involves understanding that GraphDB’s inference engine handles these requests natively via configuration rather than manual file … Read more

Apache Nifi – How to solve issue “Unable to communicate to Nifi” when trying to view the file content of Generate FlowFile

Summary This postmortem addresses a common issue encountered by new Apache NiFi users: the inability to view file content via the UI despite successful flow execution. The error “Unable to communicate to NiFi” typically occurs when accessing the Content Repository through the REST API. In this specific case, the user successfully downloads files (proving data … Read more