Event missing in system projection and in custom projections

I have an event:

0@listing-listing-9a0fbba2-961d-502d-8c27-5c1f6dd4213e

Type: ListingAdded

Data

{
  "realtor_id": "b0834ae4-176b-5b94-af1c-7a9b668659b4",
  "bag_id": "0995200000802760",
  "label": "pararius koop",
  "description": "Fantastisch wonen in een unieke omgeving, met ruimte, rust en\n 100% privacy, omringt door groen en water!\n Deze geweldige villa, ontworpen door O5B architecten in samenspraak met de huidige eigenaren en gebouwd door\n Bram\n van Haarst, bereikt u via de statige oprijlaan van het Landgoed “Noordzoom”.\n\n Dit, mogelijk uw toekomstige landgoed, kenmerkt zich door de lommerrijke omgeving van een landgoed in Engelse\n stijl, met alleen luxe vrijstaande landhuizen. Op loopafstand van dit landgoed bevinden zich diverse\n jachthavens,\n een volwaardige 18-holes golfbaan, grootschalig bosgebied (zuigerplasbos) met vele recreatiemogelijkheden\n (wandelroutes/hardloop/fietsroutes) en Batavia-Stad. Scholen en winkels zijn ook dichtbij. Een woonomgeving\n met\n veel groen, rust, privacy en vele faciliteiten in de nabijheid.\n\n Dit traditioneel gebouwde, zeer karakteristieke landhuis in Kempische landhuisstijl, is gebouwd in 2006 en is\n gelegen op een perceel van 1203 m2 eigen grond. De kavel grenst met de achtertuin aan water, overige zijden\n gaan\n naadloos over in mandelig-gebied. In de beleving zult u deze kavel dan ook als veel groter ervaren en biedt\n volledige privacy.\n\n Deze villa, dit landhuis, is maar liefst 24,20 meter breed en beschikt over een aangebouwde praktijkruimte van\n ca.\n 40 m2 met eigen entree. 2 grote overkappingen, gemaakt met enorme massief eikenhouten balken en bedekt met\n gerecupereerde leien. De woning is zeer sfeervol ingedeeld met op de begane grond de grote entree met vide,\n royale\n keuken, bijkeuken, eetkamer, woonkamer en een aparte herenkamer. Op de eerste verdieping zijn 3 grote\n slaapkamers\n en 2 badkamers. Tevens beschikt de ouderslaapkamer over een grote inloopkastenkamer. Vaste trap naar de tweede\n verdieping.\n\n**Begane grond**\n\nRoyale entree met vide, toiletruimte met luxe sanitair. De\n entree\n is voorzien van authentieke Bourgondische Dallen. De stijlvolle dubbele stalen deuren met glas geven toegang\n tot\n de eetkamer.\n\n Keuken / eetkamer:\n Deze sfeervolle keuken en eetkamer, groot ca. 30m2, voorzien van luxe inbouwkeuken met verdikt leistenen\n aanrechtblad (70 cm diep), Boretti fornuis met dubbele oven en 5 pits gaskookplaat, rvs-afzuigkap, vaatwasser,\n koelkast, magnetron en Quooker. Openslaande deuren vanuit de eetkamer bieden direct toegang tot terras en de\n magnifieke tuin. De eetkamer biedt ruimte voor het plaatsen van een grote eettafel. De vloer is ook voorzien\n van\n Bourgondische Dallen met vloerverwarming.\n\n Woonkamer:\n Sfeervolle woonkamer ca. 40 m2 met veel lichtinval door de grote glazen puien aan de voor- en achterzijde.\n Verder\n liggen in de woonkamer massief eikenhouten vloerdelen (verouderde ongelijke delen). Uniek is de openhaard met\n een\n grote antieke kalkzandsteen schouw. Vanuit de woonkamer komt u via 2x twee dubbele, door een schrijnwerker\n handgemaakte, openslaande deuren in de “herenkamer”\n\n Herenkamer:\n Mooie sfeervolle kamer van ca. 16 m2 met op de vloer oude klinkertjes, een gestucte 2e openhaard met aan de\n binnenzijde oude ijsselsteentjes en ook hier 2 door de schrijnwerker handgemaakte bibliotheek kasten. De\n Herenkamer is één van de intiemste ruimtes van het huis\n Bijkeuken: De bijkeuken, direct gelegen naast de keuken en uiteraard ook vandaar uit bereikbaar. U vindt hier\n een\n 2e handgemaakte keuken met massief eikenhouten kastdeurtjes, hardstenen aanrechtblad (80 cm. diep) en\n gootsteen.\n Vanuit de bijkeuken deur stapt u naar buiten (voorzijde) onder de carport, waar u droog uw auto kunt parkeren\n en\n ook toegang heeft tot de inpandige schuur. Verder is er in de bijkeuken de trap naar kelder.\n\n Niveau -1\n Kelder:\n De perfecte ruimte, ca 14 m2, voor de opslag van uw wijn, levensmiddelen of gewoon als extra bergruimte, biedt\n u\n veel mogelijkheden. De kelder is direct onder de bijkeuken gelegen.\n\n Praktijkruimte/studio\n De ruime en lichte praktijkruimte/studio naast de woning heeft een eigen entree. In de hal, met apart toilet,\n liggen ook de oude klinkertjes, de dubbele openslaande deuren geven u direct toegang naar een eigen terras en\n de\n tuin.\n Als u op zoekt bent naar een prachtig atelier, kantoor aan huis, ‘appartement voor uw tiener, zorgunit of\n misschien nog een extra slaapkamer op de begane grond, dan biedt deze ruimte van bijna 40 m2, u de perfecte\n mogelijkheden.\n\n**Eerste verdieping**\n\nRuime overloop, uitkijkend op de daaronder gelegen hal met de\n bijzondere Bourgondische Dallen.\n\n U vindt hier drie riante slaapkamers (respectievelijk “14,5”, “12” en “17,2” m2), 2 complete badkamers,\n separaat\n toilet en een inloopkastenkamer.\n\n De grootste slaapkamer beschikt over een eigen luxe badkamer voorzien van royale inloopdouche met regendouche,\n twee waskommen geplaatst op een handgemaakt eiken meubel, ligbad, grote moderne tegels, vloerverwarming en\n glad\n gestukadoorde wanden. Dakkapel met openslaand raam. Vanuit de slaapkamer komt u in een royale kastenkamer, met\n aan\n beide zijdes een volledig handgemaakte kastenwand. Vanuit deze slaapkamer komt u via twee openslaande deuren\n op\n het balkon en heeft u een fantastisch uitzicht over de grote tuin, het weelderige groen, het eilandje gelegen\n tegenover uw tuin en het water dat meandert door uw toekomstige landgoed.\n\n Separaat toiletruimte op overloop aanwezig, voorzien van luxe zwevend sanitair. De 2e en wederom mooie\n complete\n badkamer, heeft een grote inloopdouche met glazen wand, wastafel en dakkapel met openslaand raam.\n\n Op de overloop de vaste trap naar tweede verdieping.\n\n**Tweede verdieping**\n\nDe tweede verdieping is voor meerdere doeleinden geschikt.\n Deze\n is op dit moment onderverdeeld in een overloop, hobby/werkkamer, maar is eenvoudig om te toveren voor andere\n toepassingen. (bijvoorbeeld als slaapkamer met extra studeer hoek) en verder zijn er 2 bergruimtes en een\n techniekruimte (opstelplaats Nefit Ecomline HR-combiketel).\n\n**Tuin**\n\nSchitterende veranda van ca. 20 m2 bevindt zich aan de\n achterzijde van de villa waar u ook als het regent heerlijk kunt dineren of lunchen met vrienden en familie.\n De\n veranda gaat over in een groot terras, waar nu een heerlijke lounge set staat met uitzicht op uw tuin, het\n water\n en de boompartijen.\n\n De achtertuin is 16 meter diep en 50 meter breed grenzend aan het water, volledig op het zuiden gelegen en\n heeft\n diverse grote en kleine terrassen.\n\n**Kenmerken**\n\nAlgemeen:\n Aan de voorzijde van de villa bevindt zich een zeer royale carport voor 2 auto's. Grote overkapte veranda, met\n directe toegang vanuit de keuken. De carport, veranda en de praktijkruimte, hebben geen standaard\n dakbedekking,\n maar hier liggen oude gerecupereerde leien.\n\n Bijzonderheden:\n Deze, voor Flevoland enig in zijn soort en uniek landhuis is in perfecte staat, afgewerkt met bijzonder\n hoogwaardige materialen en gebouwd in 2006. De villa is rondom bestraat met oude Belgische kasseien, voorzien\n van\n hardhouten kozijnen met arduinen vensterbanken, gerecupereerde leien als dakbedekking voor de dakkapellen en\n aangebouwde praktijkruimte, massief eikenhouten balken en meerdere unieke details zijn aanwezig in de woning,\n die\n u zelf moet zien en ervaren.\n Het houtwerk aan de buitenzijde en de gevel zijn in 2016 weer helemaal geschilderd.\n Gebruiksoppervlakte woning: circa 250 m2.\n Bruto inhoud woning: circa 950 m3.\n\n 6 Redenen om deze villa, Kempisch landhuis te kopen:\n 1. Unieke woning, instapklaar, charmant met unieke exclusieve en authentieke details, voorzien van alle\n hedendaagse comfort en luxe.\n 2. Geheel gelegen in het groen, aan het water waar u als toekomstige eigenaar van het landgoed kunt genieten,\n in\n alle privacy, van de lommerrijke omgeving.\n 3. Uitstekende staat van onderhoud, extreem goed geïsoleerd, mechanische ventilatie, vloerverwarming en\n geschilderd binnen en buiten met Pure & Original verf.\n 4. Door de mogelijkheid praktijkruimte bieden aan mogelijkheden, kunt u deze woning (mocht het nog niet 100%\n passen, eenvoudig aanpassen aan uw eigen wensen.\n 5. Lelystad ligt zeer centraal, in bijvoorbeeld 40 minuten bent u met de trein op Schiphol, met de auto in 40\n minuten in Zwolle, 30 minuten in het mooie Laren of iets meer dan een uur in Den Bosch.\n 6. Op loopafstand zijn bijvoorbeeld diverse jachthavens, de bossen, scholen, winkels, een 18-holes golfbaan en\n Batavia-stad.\n\n Landgoed Noordzoom:\n De woning is gelegen op een kavel met een kaveloppervlakte van 1203 m2 eigen grond, overlopend in\n mandeliggebied.\n De villa is gelegen op het landgoed \" Noordzoom\" Het mandelig gebied is onder gebracht in een stichting:\n \"Stichting beheer mandeligheid landgoed Noordzoom te Lelystad”. 1/11 onverdeeld aandeel in dit mandelig\n perceel\n betreft Lommerrijk 15 te Lelystad. Maandelijkse bijdrage aan onderhoudskosten voor mandelig gebied bedraagt €\n 200,00.\n\n Oplevering in overleg.",
  "public_house_number": false
}
                               

Metadata

{
  "_aggregate_id": "9a0fbba2-961d-502d-8c27-5c1f6dd4213e",
  "_aggregate_version": 1,
  "_aggregate_type": "Domain\\Listing\\Listing"
}

``

When I go to: http://localhost:2113/web/index.html#/streams/listing-listing-9a0fbba2-961d-502d-8c27-5c1f6dd4213e/0 then I see the event

When I go to: http://localhost:2113/web/index.html#/streams/$ce-listing/head/backward/2000 the event is missing, while the event should be having category listing, if I understand everything correctly.

When I go to: http://localhost:2113/web/index.html#/streams/$et-ListingAdded/head/backward/2000 the event is there.

When I go to my custom projection stream: http://localhost:2113/web/index.html#/streams/adminListings/head/backward/2000 the event is missing again.

This is the code of my projection:

fromCategory(‘listing’)

.foreachStream()

.when({

$any: function(state, event) {

if (event.metadata._aggregate_id !== undefined) {

linkTo(‘adminListings’, event);

}

}

});

``

Any idea to why this event (ps. there are more events like

I see my last sentence wasn’t complete:
Any idea to why this event is missing? (ps. there are more events missing, besides this one).

Do you have the standard projections running? A quick check on the web UI will tell you if the category projection is running.

Yes they are running. And like 95% of the events are actually there, but some are not.

What version of ES and do you use transactions?

We use Event Store 4.1.0.0 and we don’t use transactions (we write events via HTTP). But the events are in the system, they just are not inside some streams.

Inside the logs of eventstore I saw a number of “Invalid JSON” errors. So I’ve replaced the HTTP library of my application (from PHP guzzle to PHP nyholm) and this seem to have fixed things. Really strange that the projections start complaining about the JSON, while the event is recorded.

Events are just arrays of bytes projections actually try to use the data. You can literally send binary data as events (and many do!), eventstore itself does not care about event payloads. Projections on the other hand needs to be able to deserialize your data so it cares what format it is in.

And projections do not complain about data when it is written. Projections are always run asynchronously.

Okay good to know, thank you all for the help!