Behind the Blackboard! One SIS Integration Enrollment Record Failure in a Snapshot Flat-File Causes Rest of Records To Fail - Behind the Blackboard Skip Navigation
Download PDF  Icon Download PDF    Print article

One SIS Integration Enrollment Record Failure in a Snapshot Flat-File Causes Rest of Records To Fail

Date Published: Dec 16,2024


CategoryPlanned First Fix Release:Future Reference; Product:Blackboard Learn MH,Blackboard Learn SaaS,Blackboard Learn Software; Version:3900.104.0,3900.106.0,3900.108.0,3900.110.0
Article No.: 000090132
Product:
Learn Software
Release:
9.1;SaaS
Service Pack(s):
3900.104.0, 3900.106.0, 3900.108.0, 3900.110.0
Description:

When enrolling users via SIS flatfile Integrations, some enrollments are not processing and are throwing errors.  

 

The issue occurs when enrolling users into a new DSK that does not exist yet and the first record in the feed that references that DSK errors out (say for an invalid user batch_uid).  Then, all subsequent enrollments in the feed are processed through that integration that are to get associated to that "new" DSK error out with a caused by: Caused by: org.postgresql.util.PSQLException: ERROR: insert or update on table "course_users" violates foreign key constraint "course_users_fk3" Detail: Key (data_src_pk1)=(54) is not present in table "data_source"

Steps to Repeat:
  1. Log into Blackboard Learn as an administrator
  2. Navigate to System Admin > Data Integration > Student Information System Integrations
  3. Upload a Course Membership Feed file that has several records at least that reference a new dsk that was not created yet.  The key here is to have the first record in the feed that references the new DSK to have an error in it that it cannot process like a bad user batch_uid
  4. Submit the feed file for processing

Observed Behavior:
The defective record does not process as expected and all other records that have that DSK error out as the SIS system seems to expect that DSK to be in the database now and since it is not it errors all subsequent records.

Expected Behavior:
Only the record with the bad batch_UID is not processed and then the next record that references the new DSK will process associated to that DSK and all subsequent records that need to be associated to that DSK are created and associated. 


Symptoms:

Sample Error Stack Trace:

Membership [create/update, bbtest-student2, apple2]
An error occurred while processing MembershipPersistOperation
blackboard.persist.PersistenceException: A database error occurred.
at blackboard.persist.impl.NewBaseDbLoader.loadObject(NewBaseDbLoader.java:132)
at blackboard.persist.course.impl.CourseCourseDbLoaderImpl.loadParent(CourseCourseDbLoaderImpl.java:71)
at blackboard.persist.course.impl.CourseCourseDbLoaderImpl.loadParent(CourseCourseDbLoaderImpl.java:83)
at blackboard.data.course.impl.CourseCourseManagerImpl.loadParent(CourseCourseManagerImpl.java:49)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at blackboard.db.TransactionInterfaceFactory$TransactionHandler.invoke(TransactionInterfaceFactory.java:53)
at com.sun.proxy.$Proxy2325.loadParent(Unknown Source)
at blackboard.platform.dataintegration.operationdefinition.MembershipPersistOperationHandler.syncMaster(MembershipPersistOperationHandler.java:304)
at blackboard.platform.dataintegration.operationdefinition.MembershipPersistOperationHandler.handleOperation(MembershipPersistOperationHandler.java:123)
at blackboard.platform.dataintegration.operationdefinition.MembershipPersistOperation.execute(MembershipPersistOperation.java:262)
at blackboard.platform.dataintegration.operationdefinition.BaseOperation.execute(BaseOperation.java:53)
at blackboard.platform.dataintegration.operationdefinition.impl.OperationManagerImpl.processOperation(OperationManagerImpl.java:99)
at blackboard.platform.dataintegration.operationdefinition.impl.OperationManagerImpl.executeOperation(OperationManagerImpl.java:43)
at blackboard.platform.dataintegration.operationdefinition.impl.OperationManagerImpl.executeOperation(OperationManagerImpl.java:34)
at blackboard.platform.dataintegration.mapping.impl.DataIntegrationObjectMappingManagerImpl.persistSISObject(DataIntegrationObjectMappingManagerImpl.java:241)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
... 45 more
Caused by: org.postgresql.util.PSQLException: ERROR: insert or update on table "course_users" violates foreign key constraint "course_users_fk3"
  Detail: Key (data_src_pk1)=(36) is not present in table "data_source".
 
... 34 more
Caused by: org.postgresql.util.PSQLException: ERROR: current transaction is aborted, commands ignored until end of transaction block
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2725)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2412)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:371)
at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:502)
at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:419)
at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:194)
at org.postgresql.jdbc.PgPreparedStatement.executeQuery(PgPreparedStatement.java:137)
at jdk.internal.reflect.GeneratedMethodAccessor44.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
... 45 more
Caused by: org.postgresql.util.PSQLException: ERROR: insert or update on table "course_users" violates foreign key constraint "course_users_fk3"
  Detail: Key (data_src_pk1)=(36) is not present in table "data_source".



Resolution/Workaround:

Create the DSK manually then the feed will process as expected. 



Target Release:

Future Reference







The information contained in the Knowledge Base was written and/or verified by Blackboard Support. It is approved for client use. Nothing in the Knowledge Base shall be deemed to modify your license in any way to any Blackboard product. If you have comments, questions, or concerns, please send an email to kb@blackboard.com. © 2025 Blackboard Inc. All rights reserved