Samenvatting
Sinds 5 september 2025 zijn er bij Invantive Cloud en Invantive Bridge Online-foutmeldingen geregistreerd bij het gebruik van HubSpot-data. De foutmelding geeft aan dat de tabel Deals
niet meer bestaat.
Uit onderzoek blijkt dat HubSpot in ieder geval recent wijzigingen heeft doorgevoerd in hun API-specificaties (de technische beschrijving van hun databronnen). Daarbij is de structuur aangepast, waardoor bestaande tabellen zoals Deals
mogelijk niet meer beschikbaar zijn op de oude manier.
Bij het verwerken van de nieuwe specificaties treedt tenminste één ernstige fout op. Mogelijk dat hierdoor de tabel Deals
ook niet verwerkt kan worden.
Invantive zal het probleem verder onderzoeken en proberen op te lossen. De oplostijd is niet goed voorspelbaar. Het probleem is kritisch voor het gebruik van HubSpot, maar de uitrol van release 25.0 kent ook aantal kritische problemen.
Details
Bij controle op Invantive Cloud blijkt aldaar ook een dergelijke foutmelding op te treden:
itgengpr015
Unknown table ‘DEALS’.
Possible valid alternatives: Deals3.Basic.CrmV3Objects03, Deals202509.Basic.CrmObjects202509ByObjectTypeObjectId
Dit gebeurt bij request ID 0HNFD77MD389O:0000003B
zelfs al bij het openen van de database omdat er een Startup SQL op zit voor het ophalen van Deal Companies:
declare
l_orig_system_group varchar2 := 'HUBSPOT-DEALS-' || to_char(newid());
begin
insert into NATIVEPLATFORMSCALARREQUESTS@hst
( url
, http_method
, orig_system_group
)
select 'https://api.hubapi.com/crm/v4/objects/deal?offset=' || to_char(rge.value) || '&limit=100&associations=company' url
, 'GET'
, l_orig_system_group
from ( select /*+ http_memory_cache(true, true, interval '20 hours') */
count(*) cnt
from deals@hst dal
) dal
join range@datadictionary(ceil(dal.cnt / 100), 0, 100) rge
;
create or replace table DealCompanies@InMemoryStorage
as
select jte.*
from NATIVEPLATFORMSCALARREQUESTS@hst nst
join jsontable
( 'results[*].associations.companies.results[*]'
passing nst.result_text
columns deal_id int64 path '::ancestor.::ancestor.::ancestor.id'
, object_id int64 path 'id'
, association_type varchar2 path 'type'
) jte
where nst.orig_system_group = l_orig_system_group
;
end;
Dit bevestigt ook dat deze tabel Deals
ooit heeft bestaan, maar ook op versie 25.0.10 op Invantive Cloud niet meer zichtbaar is.
Het eerste optreden van dit probleem is op 5 september om 12:33:26 UTC op Invantive Bridge Online 24.0.763 met request ID 0HNFAGTF916TR:00000001
.
Bij controle blijkt dat er 149 downloads zijn die samen op 7 september de HubSpot-API’s beschrijven. Uit de URL’s blijkt dat deze waarschijnlijk recent gewijzigd zijn:
https://api.hubspot.com/public/api/spec/v1/specs/CRM/Custom%20Objects/versions/424?specVersion=2025-09
Bij het verwerken van de (tenminste deels nieuwe) specificaties treedt in ieder geval 1 ernstige foutmelding op bij het ontleden op https://api.hubspot.com/public/api/spec/v1/specs/CMS/Hubdb/versions/243927
:
itgensgr147
Can’t retrieve Swagger specification with unique ID ‘Hubdb-3’ with URL https://api.hubspot.com/public/api/spec/v1/specs/CMS/Hubdb/versions/243927
met call stack:
System.InvalidOperationException: Could not resolve the path '#/components/schemas/HubDbTableRowV3Wrapper'. at NJsonSchema.JsonReferenceResolver.ResolveDocumentReference(Object rootObject, String jsonPath, Type targetType, IContractResolver contractResolver) at NJsonSchema.JsonReferenceResolver.ResolveReferenceAsync(Object rootObject, String jsonPath, Type targetType, IContractResolver contractResolver, Boolean append, CancellationToken cancellationToken) at NJsonSchema.JsonReferenceResolver.ResolveReferenceAsync(Object rootObject, String jsonPath, Type targetType, IContractResolver contractResolver, CancellationToken cancellationToken) at NJsonSchema.JsonSchemaReferenceUtilities.JsonReferenceUpdater.VisitJsonReferenceAsync(IJsonReference reference, String path, String typeNameHint, CancellationToken cancellationToken) at NJsonSchema.Visitors.AsyncJsonReferenceVisitorBase.VisitAsync(Object obj, String path, String typeNameHint, ISet`1 checkedObjects, Action`1 replacer, CancellationToken cancellationToken) at NJsonSchema.Visitors.AsyncJsonReferenceVisitorBase.VisitAsync(Object obj, String path, String typeNameHint, ISet`1 checkedObjects, Action`1 replacer, CancellationToken cancellationToken) at NJsonSchema.Visitors.AsyncJsonReferenceVisitorBase.VisitAsync(Object obj, String path, String typeNameHint, ISet`1 checkedObjects, Action`1 replacer, CancellationToken cancellationToken) at NJsonSchema.Visitors.AsyncJsonReferenceVisitorBase.VisitAsync(Object obj, String path, String typeNameHint, ISet`1 checkedObjects, Action`1 replacer, CancellationToken cancellationToken) at NJsonSchema.Visitors.AsyncJsonReferenceVisitorBase.VisitAsync(Object obj, String path, String typeNameHint, ISet`1 checkedObjects, Action`1 replacer, CancellationToken cancellationToken) at NJsonSchema.Visitors.AsyncJsonReferenceVisitorBase.VisitAsync(Object obj, String path, String typeNameHint, ISet`1 checkedObjects, Action`1 replacer, CancellationToken cancellationToken) at NJsonSchema.Visitors.AsyncJsonReferenceVisitorBase.VisitAsync(Object obj, CancellationToken cancellationToken) at NJsonSchema.JsonSchemaReferenceUtilities.JsonReferenceUpdater.VisitAsync(Object obj, CancellationToken cancellationToken) at NJsonSchema.JsonSchemaReferenceUtilities.UpdateSchemaReferencesAsync(Object rootObject, JsonReferenceResolver referenceResolver, IContractResolver contractResolver, CancellationToken cancellationToken) at NJsonSchema.Infrastructure.JsonSchemaSerialization.FromJsonWithLoaderAsync[T](Func`1 loader, SchemaType schemaType, String documentPath, Func`2 referenceResolverFactory, IContractResolver contractResolver, CancellationToken cancellationToken) at NSwag.OpenApiDocument.FromJsonAsync(String data, String documentPath, SchemaType expectedSchemaType, Func`2 referenceResolverFactory, CancellationToken cancellationToken)
at Invantive.Data.Providers.Swagger.SwaggerProvider.ReadSpecification(GlobalState owner, ExecutionOptions executionOptions, String swaggerSpecification)
at Invantive.Data.Providers.Swagger.SwaggerProvider.a(GlobalState, ExecutionOptions executionOptions, String swaggerSpecificationUrl, String)
at Invantive.Data.Providers.Swagger.SwaggerProvider.A(GlobalState owner, ExecutionOptions, SqlExecutionStep, String, String, Dictionary`2 headerValues)
at Invantive.Data.Providers.Swagger.SwaggerProvider.<>c__DisplayClass90_0.<GetSwaggerSpecification>b__0(SwaggerSource, ParallelLoopState pls, Int64)