Troubleshooting - OpenGroupware/OpenGroupware.org GitHub Wiki

Model cannot be found

Sep 16 12:49:13 ogo-webui-5.5 [13201]: [ERROR] <0x0xaaaaeb26edb0[OGoContextManager]> did not find bundle for model 'OpenGroupware.org_PostgreSQL' (type=EOModels)

This means that the bundle containing the EOModel could not be found. The bundle should be installed in /usr/local/ and is looked up using the NGBundleManager.

This can happen if the NGBundlePath is not set or not set properly.

defaults read NGBundlePath

Sample:

defaults write ogo-webui-5.5 NGBundlePath \
  "/usr/local/lib/GNUstep/Bundles:/usr/local/lib/GNUstep/Models-5.5:/usr/local/lib/GNUstep/WOxElemBuilders-4.9:/usr/local/lib/GNUstep/WebUI-5.5"

Invalid Superclass Version

2024-09-16 11:57:56.191 ogo-webui-5.5[8207:8207] OpenGroupware.m:139  Assertion failed in OpenGroupware(instance), method initialize.  invalid superclass (WOApplication) version 0 !

This happens if the SOGo.nu version of SOPE is being used. At some point SOPE dropped including version numbers, apparently to support FreeBSD. Unclear what the actual issue was.

Fix: The change is reverted in the SOPE repo contained in the org.

The versions are used to counter the fragile base class issue Objective-C used to have. It might have become a non problem in the current runtime, but it still seems to make sense to version APIs.

Cannot create database schema

When running the OGo schema build script:

ERROR:  permission denied for schema public
LINE 1: CREATE TABLE staff (

Since PG 15 regular database users are not allowed to modify the public (the default) schema of databases anymore.

Solution: Create the schema as the postgres database user, and then give access to the tables as shown below.

Cannot access database tables

psql -U OGo OGo
OGo=> SELECT * FROM staff;
ERROR:  permission denied for table staff

The database schema was probably created using the postgres user and the OGo database user does not have access to it.

Solution: grant r/w access, but do not provide schema access:

GRANT SELECT, INSERT, UPDATE, DELETE 
   ON ALL TABLES    IN SCHEMA public TO "OGo";
GRANT SELECT, UPDATE, USAGE
   ON ALL SEQUENCES IN SCHEMA public TO "OGo";
GRANT EXECUTE 
   ON ALL FUNCTIONS IN SCHEMA public TO "OGo";

OGoContextManager: could not fetch login information

2024-10-02 13:46:06.924 ogo-webui-5.5[73:73] OGoContextManager: could not fetch login information: <PostgreSQL72Exception: 0x55e6b21e1e60> NAME:PostgreSQL72FatalError REASON:fatal pgsql error (channel=<0x55e6b1e0ba20[PostgreSQL72Channel]: connection=<0x55e6b21ddd20[PGConnection]:  connection=0x55e6b21d4350>>): ERROR:  relation "person" does not exist
LINE 1: SELECT t1.login, t1.is_locked, t1.password FROM  person t1 W...
                                                         ^
Oct 02 13:46:07 ogo-webui-5.5 [73]: 192.168.65.1 "GET /OpenGroupware HTTP/1.1" 200 1439/0 0.286 5030 71% 3M - 11

This likely means that the OGo database schema has not been loaded, or loaded into the wrong database. Make sure this works for user OGo, database OGo:

sql -h localhost OGo OGo
SELECT * FROM staff;